{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Derivatives Analytics with Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**_Chapters 9-10_**\n",
    "\n",
    "**Wiley Finance (2015)**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/images/derivatives_analytics_front.jpg\" alt=\"Derivatives Analytics with Python\" width=\"30%\" align=\"left\" border=\"0\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Dr. Yves J. Hilpisch\n",
    "\n",
    "The Python Quants GmbH\n",
    "\n",
    "<a href='mailto:dawp@tpq.io'>dawp@tpq.io</a> | <a href='http://tpq.io'>http://tpq.io</a>\n",
    "\n",
    "Python online training | <a href='http://training.tpq.io'>http://training.tpq.io</a>\n",
    "\n",
    "DX Analytics library | <a href='http://dx-analytics.com'>http://dx-analytics.com</a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from pylab import plt\n",
    "plt.style.use('seaborn')\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Chapter 9: General Market Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Zero-Coupon Bond Valuation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ZCB Value       0.9608\n"
     ]
    }
   ],
   "source": [
    "%run 09_gmm/CIR_zcb_valuation.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### European Option Valuation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "M76 Value       7.7611\n",
      "H93 Value       6.8672\n",
      "BCC97 Value     8.2942\n"
     ]
    }
   ],
   "source": [
    "%run 09_gmm/BCC_option_valuation.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Monte Carlo Simulation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### CIR Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ZCB Value       0.8373\n"
     ]
    }
   ],
   "source": [
    "%run 10_mcs/CIR_zcb_valuation_gen.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%run 10_mcs/CIR_zcb_simulation.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAE8CAYAAAAIflHsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd03Nd16PvvzAAY9D5oRC88AFhAihQpkjJFUVSvlmXJ\nduwkjnOT2Dd5cfLuS7xe/O6z11US38S5efGyfZ04TtwtW7K6qC6qkiLFChLloPc2g94x7f0xGAgk\nAWIAYmYwwP6sxQXOb36/+Z05BDEbZ599jsHtdiOEEEIIESqMwW6AEEIIIcRySPAihBBCiJAiwYsQ\nQgghQooEL0IIIYQIKRK8CCGEECKkSPAihBBCiJASFuwGrBarddRvNd9JSdEMDk746+XFFaS/A0f6\nOnCkrwNL+jtw/NnXFkucYaHjMvLig7AwU7CbsKFIfweO9HXgSF8HlvR34ASjr/068qKUOgI8DPQB\nbq31Nxc45zHg74A/11q/eMVzacA54O+11t/1Z1uFEEIIERr8NvKilIoGfgD8hdb6G8B2pdRtV5xT\ngCewaV/geiPwOHDaX20UQgghROjxZ9poH9CqtZ6effwBcO/8E7TWzVrrY4tc/9fAj4BB/zVRCCGE\nEKHGn2mjNGB03uOR2WNLUkodBia01ieVUl/25ZqkpGi/5t0slji/vba4mvR34EhfB470dWBJfwdO\noPvan8FLHzD/3cTPHvPFA0CPUuprwDYgSSk1rrX+z8Uu8OescoslDqt1dOkTxaqQ/g4c6evAkb4O\nLOnvwPFnXy8WFPkzeDkB5CmlzLOpowPA95VSyYBDaz2y2IVa6696/66UKgVOXytwEUIIIcTG4bc5\nL1rrCeDLwHeUUo8DlVrrN4GvAV8BUEoZlFJfB/KAx5RSd85/DaXUHwDbgTuVUnf7q61CCCGECB0G\nt9tva7sFlD8XqZPhx8CS/g4c6evAkb4OLOnvwPFz2kgWqRNCCCFE6JPgRQghhNhAnE4XF890MD3l\nCHZTVkyCFyGEEGIDqTnfzfuvN3Dmg5ZgN2XFJHgRQgghNpD66l4A6qp7cblcQW7NykjwIoQQQmwQ\nI0OT9HR6ViqZHLfT3hyai9hL8CKEEEJsEA01nrViy3dkAqAv9gSzOSsmwYsQQgixQTRU92E0Grjp\nUCGJKdG01NuYnrIHu1nLJsGLEEIIsQEMWMfpt46TW5iMOTIctTUdp9NNQ4012E1bNglehBBCiA2g\nvsYzUbdkSzoAm2e/6kuhlzqS4EUIIYRY59xuNw3VfYSFG8krTgEgNj6S7PwkejtHGBrw3+bG/iDB\nixBCCLHO9XWPMjI0RcHmVMLDTXPH1bYMIPRGXyR4EUIIIdY579ouJWXplx0v2JxKeISJuku9hNJe\nhxK8CCGEEOuYy+WmscaKOTKM7IKky54LDzdRVGphbGSaztahILVw+SR4EUIIIdaxrrYhJsZnKCq1\nYDJd/bGvtoZe6kiCFyGEEGIdm0sZlacv+HxmTgJxCZE0aSv2mdDYrFGCFyGEEGKdcjpcNGkrMXER\nZOYkLHiOwWBAbU3HYXfRqG0BbuHKSPAihBBCrFNtTf3MTDspLkvDYDAset5c1VGIbBcgwYsQQgix\nTtVXe/YyWixl5BWfGEVmdgJdbUOMDk8FomnXRYIXIYQQYh2amXbQ0tBPQnIUqemxS57vHX2pq+r1\nd9OumwQvQgghxDrUUm/D6XBRskTKyKuo1EJYmBF9sWfNr/kiwYsQQgixDtXXeFJGxUukjLwizGEU\nbE5leHCS3q4RfzbtuknwIoQQQqwzkxMzdDQPkpoeS1JKtM/XhcrEXQlehBBCiHWmSVtxudxLTtS9\n0qa8JGLiImioseJwOP3UuusnwYsQQgixztRXzaaMyizLus5oNLB5S7pnsm99vz+atiokeBFCCCHW\nkbGRKbo7hsnMSSA2PnLZ14fCdgESvAghhBDriHei7nJTRl5JqTGkZcbR3jTAxNj0ajZt1UjwIoQQ\nQqwjDdV9GI0GikqXlzKaT23NwO2G999oYGJ8ZhVbtzokeBFCCCHWicH+cWy9Y+QUJBEZFb7i1ynZ\nkkZSajSNtVZ++a8nOXuidU1N4A3z54srpY4ADwN9gFtr/c0FznkM+Dvgz7XWL84euxH4KnAOUMAp\nrfUP/dlWIYQQItQ11VoBKC5Lu67XMUeG8+kv7qb6fBen32/h5DvNVJ3rYu8thZSU+7bonT/5beRF\nKRUN/AD4C631N4DtSqnbrjinAE9g037F5ZnAv2itvw18BfgHpVSqv9oqhBBCrAetTQMYDJBblHLd\nr2UyGdm2K5vP/fFeduzNYWJ8hjdfqOHpn56lq31oFVq7cv5MG+0DWrXW3tk+HwD3zj9Ba92stT52\n5YVa6+e11qfmHXIAdr+1VAghhAhxU5N2+rpGSN8Uf10poyuZI8PZd2sRn/0veyguS6Ove5TnfnGe\nV56+xNDAxKrdZzn8mTZKA0bnPR6ZPbZcfwr8ndZ6+FonJSVFExZmWsHL+8ZiifPba4urSX8HjvR1\n4EhfB9ZG6+9L5zpxu6FsW6Zf3rvFEkdRSRodrYO8/nwVzXU2Whv6ue/TFezYk7Pq97sWfwYvfcD8\n3oufPeYzpdTngBit9eNLnTs46L/oz2KJw2odXfpEsSqkvwNH+jpwpK8DayP296XznQCkpMf69b2b\no8O497HtNGkbZ0+0Mj1l99v9FgvC/Bm8nADylFLm2dTRAeD7SqlkwKG1vuauT0qpPwRitdaPK6W2\nAdNa6zo/tlcIIYQISW63m7amAaJiwklNj/X7/QwGTyl2UaklKIGi3+a8aK0ngC8D31FKPQ5Uaq3f\nBL6GZxIuSimDUurrQB7wmFLqztnjDwL/BDyklHob+CWQ5a+2CiGEEKHM2jPK1ISd3ILkoFcCBYJf\nS6W11q8Dr19x7K/m/d0NPD77Z/45zwEJ/mybEEIIsV60NQ0Aq1NlFApkkTohhBAixLXNlkjnFCQF\nuykBIcGLEEIIEcLml0ibI1evRHotk+BFCCGECGHtzQO43ZBbuDFSRiDBixBCCBHS2hpn57sUJge5\nJYEjwYsQQggRotxuN23NA0THRASkRHqtkOBFCCGECFHeEumcwo1RIu0lwYsQQggRouZKpDdQyggk\neBFCCCFCVlvjxiqR9pLgRQghhAhBU5N2ertGSN+UsGFKpL0keBFCCCFCUHvzxkwZgQQvQgghREja\niCXSXhK8CCGEECFmo5ZIe0nwIoQQQoSYjVoi7SXBixBCCBFivCmjvKKNlzICCV6EEEKIkOPdRTo7\nf2OVSHtJ8CKEEEKEkI1cIu0lwYsQQggRQjZyibRXWLAbIIQQQgwNTNCkrSSnxmDJjCMm1hzsJq1Z\nG7lE2kuCFyGEEEH30XvNNNRY5x7HxEWQlhGPJTOOtMw4LBlxREZtzBTJfHMl0rEbs0TaS4IXIYQQ\nQddvHSc8wsSOvTn0dY9i7R6lud5Gc71t7pz4xEjSMuNISYslxRJLsiWG2HjzhioV9pZIl27L2FDv\n+0oSvAghhAgqp9PF8MAklow4dh/IBzwjDONjM1i7RzzBTM8ofd2jNNRYLxuhiTCbSLHEkpIWQ7L3\na2pMkN6J/82ljDZoibSXBC9CCCGCanhwEpfLTVJq9Nwxg8FAbJyZ2DgLBZstgCegGR2eot86zkDf\nGP3Wcfqt4/R0DtPdMTx3rdFo4Hf++CZiE9bfvJmNXiLtJcGLEEKIoBq0jQMsOWJiMBiIT4wiPjGK\ngpLUueMOu5PB/gn6+8bo7himtrKH2spudn8i35/NDrjJiRl6u0bIyN64JdJeUiothBAiqAasnuAl\naYXpnrBwE5aMOEq3Z3Lwzs2Ywoy0NQ2sZhPXhPbmQWDjrqo7nwQvQgghgmqwfwKA5Hlpo5UymYyk\nZ8XT2zPC1KT9ul9vLWlvkhJpLwlehBBCBNWAbZwIs4mYuNWZo5KVmwhuLpsHE+pcLjdtTZ4S6ZS0\njVsi7SXBixBCiKDxVholpcSsWulvVk4CAN1tQ6vyemuBtWeUqUk7uRt0F+krSfAihBAiaIYHrq40\nul7pWfGYTEa62tfPyEtbYz8AuYUpQW7J2iDBixBCiKAZ7Pet0mg5wsJNZOUmYusdZWbasWqvG0xt\nTQMYjYYNXyLt5ddSaaXUEeBhoA9wa62/ucA5jwF/B/y51vrFecc/D+wEnECj1vpf/dlWIYQQgeet\nNEq2rO7CcnmFybQ3D9DdMUxeUWiPVkyMz9DXPUpWbiLmSFnhBPw48qKUigZ+APyF1vobwHal1G1X\nnFOAJ7Bpv+J4NvDfgP+mtf4r4A+VUiX+aqsQQojgGLB5Ko2SUlYvbQTMBSzd6yB1NFdlJCXSc/yZ\nNtoHtGqtp2cffwDcO/8ErXWz1vrYAtfeCZzRWrtnH58A7vZbS4UQQgTFYP/qVhp5ZeclYzBAV3vo\nT9pta/LMd8mT+S5z/Dn+lAaMzns8MnvML9cmJUUTFmZaVgOXw2KJ89tri6tJfweO9HXgSF9fzunw\nVBpl5SSSlha/6q+fmZNIT8cwiQlRhEeEZrrF5XTR0TJEfGIkm8vS12ylUaC/t/35r9kHzH838bPH\nfL22+IprG651weDgxLIatxwWSxxW6+jSJ4pVIf0dONLXgSN9fbUB6zgul5vYBPOq943FEoclI46u\ntiEuXegK2Ymu3R3DTE3aKVSp2GxjwW7Ogvz5vb1YUOTPtNEJIE8p5R0LPAC8pJRKVkotFWK/CuxS\nSnlDzH3Ay35qpxBCiCAY8HFPo5XKyvWs9xLKqaO5EukQn3S82vwWvGitJ4AvA99RSj0OVGqt3wS+\nBnwFQCllUEp9HcgDHlNK3Tl7bQfwbeCflVL/BPy71rreX20VQggReHMbMq5ypZFXZnboL1bX1jiA\n0WQgOy8x2E1ZU/yaBNRavw68fsWxv5r3dzfw+OyfK6/9OfBzf7ZPCCFE8MxVGvlp5MUcGU5qWiy9\nXSM4HE6/zov0h/HRaWx9Y2TnJ4XsnB1/kUXqhBBCBMWgd0+j2Ai/3SMzJwGn001fd+jNN2qTEulF\nSfAihBAi4JxOF8ODkySlrt6eRgvJyvWkW0IxdeQtkZYtAa4mwYsQQoiA8+5p5K/Jul6ZOd5Ju6G1\nWJ3T6aK9eZD4xEgSk6OC3Zw1R4IXIYQQAeetNFrtlXWvFBUdQVJqND2dwzidLr/eazX1dAxjn3GS\nW5iyZtd2CSYJXoQQQgTcgJ8rjebLyknEYXdh612b66QsROa7XJsEL0IIIQLOWybtr0qj+eZSRyE0\n76WtaQBTmJFNuVIivRAJXoQQQgTcoG3C75VGXlk5ngAgVBarGx2eYsA6zqbcRMLCQ6u8O1AkeBFC\nCBFQgao08oqJM5OQFEVPxzAul3vpC4JMUkZLk+BFCCFEQA0NTASk0mi+zJwEZqad9Pet/Xkv3i0B\n8mRLgEVJ8CKEECKgBudW1vVvpdF8oZI6cjpcdLQOkpgcRXyilEgvRoIXIYQQAeXvDRkX8vFidWt7\nvZfujiEcdpdsxLgECV6EEEIEVCArjbziEiKJjTfT3TGE27125720Ns7OdymU+S7XIsGLEEKIgBoI\nYKXRfFk5iUxNOuZGftaitsZ+wsKNc2kusTAJXoQQQgSM0+lieGCC5ABVGs2XmetZ72Wtpo5GhiYZ\nGpgkOy8JU5h8PF+L9I4QQoiAGRqYwO0ObMrIa61P2m3zpoxkvsuSJHgRQggRMMGoNPJKSIoiOiaC\nrva1Oe+ldW4XaZnvshQJXoQQQvhVV9sQdVW9AAxYA19p5GUwGMjKTWBy3M7w4GTA738tDruTztYh\nki0xxCVEBrs5a54EL0IIIfzGPuPg1WeqePOFGsZGpxnsD3yl0XyZ3tTRGtvnqLNtCKfDJaMuPpLg\nRQghhN9cOtfF1KQdgNYGW9Aqjby8816629fOpF2n00VtZTcgKSNfhQW7AUIIIdYn+4yT8x+2ExZu\nxGF30VRnY3hggvSs+IBXGnklpUYTGRU+N+8lWO3w6reO8daLtdh6x0hMiSYjOyGo7QkVErwIIYTw\ni0vnOpmatLPrQB4t9TY6WweDVmnkZTAYyMxJoLnOxujwVNCW4He53Fw41c6p95pxOd2Ubs9g/+Fi\nTCZJiPhCghchhBCrzj7j5PzJdiLMJipuzAagv8873yXwlUbzZeUk0lxn4/ypdnbsyQl4ADM8OMFb\nL9bS0zlCVEw4h+5S5JekBrQNoU6CFyGEEKuu6lwnUxN2du3PwxwZTkFJKmc+aAWCU2k0X25RMife\nNlB1touqs12kpMVQUJJKfkkqqemxfkslud1uqs51ceJYIw67i6JSCwfv3ExkVLhf7reeSfAihBBi\nVc0fddk+O+qSmh6LKcyI0+EiITm4uyUnJkfzhS/fREtDP811NjpaB+nva+X0B63ExpspKEmlYHMq\nmTkJGI2rk8YZG5ni2FFNR8sg5sgwbr2nlOKytFV57Y1IghchhBCrqupcF5Ozoy7eUQWDwUCYyRO8\nDA9MEp8Q3AAmOtZM+Y4syndkMTPtoL15gOY6G62N/Vw808nFM52YI8Mo35nFrn15hEeYVnQft9tN\nbWUPx99qYGbaSV5RMrfcrYiJNa/yO9pYJHgRQgixaux2J+dPthEe8fGoC4DT4WJmxgFAa0M/OQVr\npyQ4whxGUWkaRaVpOJ0uutqGaK630aStnDvRRn1VL/sPF1GoLMtKKXW1D3H8zQasPWOER5g4dLei\ndHtG0Cuc1gMJXoQQQqya6gVGXeDjPY2MRgMt9TYOHClekx/iJpORnIJkcgqS2XeoiLMnWjl/qp3X\nnq0mOz+Jm28vJinl2nN2RoYm+fDtJhprrQBs3pLO3lsKiI2XlXNXy5LBi1IqDfhHIAr4IvC/gK9p\nrQf93DYhhBAhxG53cm6BUReAAdvstgCWGGy9Y/T3jZOaHhuMZvosPMLE3lsKUdsyeP/1etqbB/nN\nj05TsSebXfvzCI+4/CN0ZtrB2RNtVH7UjtPpJj0rngNHiknPig/SO1i/fBl5+UfgXeCQ1npcKfUD\n4B+A/7LUhUqpI8DDQB/g1lp/84rnI4FvA51ACfAtrXXd7HP/C3AABiAa+DOttcvXNyaEECKwqs91\nMTlu54b9uVdV0Hg3ZMwpSMLWO0ZLvW3NBy9eicnR3PvodprrbHzwZgPnPmynrqqPA7d5UkluN+iL\nPZx8t4nJcTux8WZuOlRIcVnamhxdWg98CV46tdY/UkrtBtBan1NKLbkphFIqGvgBsEVrPa2U+q1S\n6jat9ZvzTvsq0Ka1/gel1DbgR8AnlFJ7gdu01hWzr3UB2Ad8sLy3J4QQIhAcdk+FUXiEiYobc656\n3jvyorZmcOFUB831NnbfnB/gVq6cwWCgUFnIKUzm3Ik2zp1s47Vnq9mUl8j0lANb7xhh4UZu/EQ+\nFXtyCA9f2QRf4RtfgpeU2a9uAKVUDFDkw3X7gFat9fTs4w+Ae4H5wcu9wP8NoLW+qJSqUErFA/1A\nrFLK2z430OzDPYUQQgRB1fkuJsZnuGHf1aMuAIO2cSLMYSSmRJOVm0hHyyBjI1MhNw8kPNzEnoMF\nqG3pvP96A21NAwBs3prO3lsKiY2TKqJA8CV4eUMpdQkwK6VeAnYDf+bDdWnA6LzHI7PHljxHa92g\nlPo34EnABbwBWK91s6SkaMLC/BfpWixxfnttcTXp78CRvg6c9drXdruTylMdRJhNHL67jOiYyzdd\ndDicDA9NkZ2bSFpaPNt2bqKjZRBb9xgFRRa/tcuf/W2xxFFUkkZLQz+RUeFkbvA9iQL9vb1k8KK1\nflIpVQkcmT30l1pr7cNr9wHz30387LElz1FKPQDcqrW+C0Ap9Vs8c2y+v9jNBgcnfGjSylgscVit\no0ufKFaF9HfgSF8Hznrt64aaPmorexgbnWbHTTmMT0wzPjF92Tn9fWO4XW5iEyKxWkdJyfDMdbl4\nrpN85Z9l8QPV37GJnpGW9fhv6yt/9vViQdGSSwcqpT6jPb6ntf4esE8p9Tc+3PMEkKeU8o6hHQBe\nUkolz6aGAF7Ck15ids7LBa31CJAD9Mx7rW4gtMYWhRBinXM6XRx7qZb2Zk/qpO5iL+++WkdbUz9O\nx8f1FXOVRrPbAsQlRJKaHktX2xDTU47AN1yEPF/SRvuBJ7wPtNY/Vkr9+1IXaa0nlFJfBr6jlLIC\nlVrrN5VS/wAMAN8C/gX4tlLq60Ax8KXZy3+MJ0j6W8AJJAD/6vvbEkII4W+9nSM4ZoOUpNRoJsZm\nqDrXRdW5LsIjTOQUJJNfkoK12/NbebLl4w0Z80tSsfWO0dbUT0l5elDaL0LXosGLUuoYnomyJUqp\nrfOeMuEpX16S1vp14PUrjv3VvL9PAv91gevGgc/7cg8hhBDB0dHiWe7LaDLw4Od2YI4Mo6djhJZ6\n29wKtU364+mK8xd3KyhJ4fT7LbTUS/Ailu9aIy/fmP3653hGSLymgEp/NUgIIURoaK63AVCoLERF\neybpZuUmkpWbyL7DRQz2T9BSb6OloZ+o6HCiYz+eyJuSFktcvNmTYnK6MJlWZwNEsTEsGrxord8B\nUEpVXrmarlKqCGj0c9uEEEKsUfYZx9xcls1brh45MRgMJKfGkJwaww378hZ8Pr8klYtnOuluHyI7\nf+3sdSTWPl+qjQaVUjcCm/GkjMCT0rnDnw0TQgixdnW1DYHbkzLKzk9a0Wt4g5fmun4JXsSy+LK3\n0TfwrO2SD3wE5AKJfm2VEEKINa2+2rPyRWZOwopTPpk5CUSYw2hpsHHz7Wtzo0axNvnyHZestb4P\neF1r/UWt9W3AW35ulxBCiDWsfXay7pYdWSt+DZPJSF5RMmMj09h6x1araWID8CV4mZr9On+lmFw/\ntEUIIUQImBifYWrCjsEA+cXXt8hcfonn+pbZyb9C+MKX4KVUKfVJ4JJS6oxS6i08664IIYTYgGor\nuwFItsRgCru+KqHcwmSMRgMt9f2r0TThA7vDydEPWxmZmAl2U1bMl0XqHgLQWruUUj14Nmr8mV9b\nJYQQYs1qqPHMd1mN9VkizGFsykukvXmQ0eEp4hJkMXV/+7Cql6febqSlZ5SvPLR16QvWIF9C5l7g\njwG01k/MbhMw4t9mCSGEWIvcbjeDNs9eclt2rny+y3ySOgqs+o5hAE7X9tHQORzk1qyML8HLRa31\n/55/QCnlv21AhRBCrFltTQO4XG6iYyOIMPsyeL80b/DSLMFLQNR3DBFm8lR2/fqtetxud5BbtHy+\nBC+/VkrdrZQKn3fs//FXg4QQQqxdl852ApBTsHrrssTGmbFkxNHdPkzNhe6Q/DANFSPjM/QOTlKa\nm8QuZaGxc4TT87ZwCBW+BC//G8/uz1NKKadSysUC+xEJIYRY39xuN93tnjTD1lVKGXntOpCH0WTg\n7Zc1v/3JGXo6QjOdsdZ500Ql2Qk8cqgIk9HAU283YJ+3C3go8CV4eU5rbdRam2b/GIG/9XfDhBBC\nrC223jHsM06MJgOWzLilL1iGgpJUPvtHeynZkoa1Z4xnfn6ON56vZmxkaumLhc/qO4YAKM5OJD0p\nmltv2IR1aIpjZzuC3LLlWTJ40Vp/coFj/90/zRFCCLFW1Zz3lEinZcT5ZTXc2DgzR+4v55Of34kl\nI5b66j5+9cNTnDneisPhXPX7bUQNHcOYjAYKM+MBeOBAAdHmMF443sLYpD3IrfOdbOMphBBiSW63\nm6Y6z9yI4rI0v94rIzuBT/3eLg7drQgPN3Hq3Wae+OFHNGmrzIe5DjN2Jy09o+Smx2KO8GxVGBsV\nzn378xmfcvDi8ZbgNnAZJHgRQgixpAHbOJMTnt/M84pT/H4/g8FAWUUmn/2jvVTsyWZ8dJpXn6ni\nhScu0Nslq3WsRHP3CE6Xm+JNl29PeNuubFITInnzTAd9gxNBat3ySPAihBBiSd6F6SKjw4lPjArY\nfc2RYew/XMyjX7qR3KJkOluHePqnZzn65EWsPaMBa8d6MH+y7nzhYUYeOVSE0+Xmqbcbg9G0ZVsy\neFFKfeWKx7+vlPoX/zVJCCHEWlNf1Qt4lvMPhqSUaO799HYe+GwFGdkJtDb289SPz/DK05fo75NN\nHX3hXZzuyuAF4MbSNAqz4jmtrTSEQKWXT3sbzX+gtf4xEO2X1gghhFhzBmzjjA5PA6u7vstKbMpL\n4qHf2cH9n9lOelY8zXU2fvMfp3nt2SoGbONBbdta5nK7aegYJi0xioRY81XPGwwGHjtcDITGwnWL\nLo+olGoG3ECyUuq+eU+ZgEv+bpgQQoi1oan240XMsvMSr3FmYBgMBrLzk9mUl0Rb0wAfvddCY62V\nxlorJVvS2H0gH4tldUu5Q123bZyJaQc7ShbfBbwkO5FdysIZbeW0tnJjqX8nZl+Pa63tfAgwAN8A\n/t95x6e01r1+bJMQQog1pKHWM98lMSWa6AV+aw8Wg8FAXlEKuYXJtDb089F7LdRX9dFQ3ce9j2wn\npyi4o0RriTdlVLxAymi+Rw4Vcb7expPHGthRnEr4de4a7i+LBi9a61YApVQCcLvW+t8D1iohhBBX\nsfWOcfytBqJjIkhMiSYx2fMnITmK8HCTX+452D8+txFjTn6SX+5xvQwGA/klqeQVp9BcZ+OdV+t4\n8clKDt2tKKvIDHbz1oSP57tce+QsPSmawzdk8/rpdt4628Gde3ID0bxl82VXrQLgP/zdECGEEItz\nudy8/XIt1p6FJ6fGxZvnApqk1Gg2b0knPOL6N06cnzLatEaDFy+DwUChspCQFMWLv67k7Zc1BgOU\nbpcApr5jiJjIMDJTlp6yev+BfD642M0LH7RQkp2I0+VictrJ1IyDqRknU9MOJmc8j6ftLu45UEhq\nbPiSr7uafPnOfhtIBfq8B5RSj2utv+6vRgkhhLhczYVurD1jlJSnsedgAUMDEwz1TzI4MMFQ/wTD\nAxO0Nw/S3jwIwOjINDfdUnjd922c3bTPYICsnGunHNaKlLRYPv8nN/GT7x3n2FGNwWBAbcsIdrOC\nZmhsGtvwFBVFKRh9WBnZu3Ddb4418PhPTy95fnycmYf2569CS33nS/ByA1CnlKoCpvHMgykGJHgR\nQogAmJrPqwMVAAAgAElEQVS0c/KdJsIjTOw7XERMrJn4xChyr4hNZqYdDA1M8PyvLtBQ1cvegwXX\ntYz/0MAE/X2eCh5LRhzmyMD+dn09MrISeOCzFTz/qwu89VItBqOBzVvSg92soGjwcb7LfEd2ZzM2\naWdqxkGUOYzICBOREZ6v3sfer1s3p9PfH9hydV+Cl2jgwXmPDcD/4Z/mCCGEuNLJd5qYnnKwfzZw\nWUyEOYy0zHgKNqdSd6mX3s4RMpbxgXWlJh06KaOFpKbHcf9nZgOYF2swGKCkfOMFMHWzmzEuNd9l\nvjCTZ+E6XxiNq7/P1VJ8CV4e1Vo3zT+glLrop/YIIcSaMTVpx2g0EGG+/rkjK9XXPUL1+W6SUqPZ\numuTT9eUlKdTd6mX+ure6wpeGi8rkQ694AU8I0b3f2Y7LzxxgTdfqMFgMPh9b6a1pqFjmDCTgYJV\n3gk8mHypgWpWSv2JUur52T9/Agz4u2FCCBFMLpeLp/7zNC88cSFoC3a53W7ee60egE/cXoLJ5FvZ\nanZ+IpHR4TTUWnG5XCu6d3/fGLbeMcIjTJhMBjI2xa/oddaCtMx47nusgvAIE288X01jbd/SF60T\nUzMO2nrHyMuIIzzMPxVpweDLrxN/D+QCr84+PgjkA19b6kKl1BHgYTyTfd1a629e8Xwk8G2gEygB\nvqW1rpt97ibgdsAF3Ap8UWvd7kN7hRDiunW1DTM6Ms3oyDR93aOkZwX+w7umspu+7lGKy9LYtIyR\nD6PRSHGphUtnu+hoGVrRkv5V57oAsM84ycpNJMxPpdiBkp4Vz72PbufFX1fyxvM1c5VJ611z1wgu\nt5uSTcFfXHA1+RLGx2itP6e1/t7sn88BS45DKqWigR8Af6G1/gawXSl12xWnfRVo01r/PfDPwI9m\nr40H/i+t9f/QWv8t8EfIaI8QIoDmz/eoPt8V8PtPTdo5+fbHk3SXq3h2bkdD9fLXFJ2ZdlBX1Ys5\n0vP7bXYIzndZSMamBO59dDtGk4HXn6ums3Uw2E3yu/pFNmMMdb4ELwvNxPFlds4+oFVrPT37+APg\n3ivOuRc4AaC1vghUzAYu9wBjSqm/VEr9d+AGrbVsWiGECAiXy01znY3IqDDiEiJpqOljesrh13u6\n3W6mp+xzj0+928zUpINdB/KIjVv+qrYZm+KJizfTVGfDYXcu69r66j7sM07iEyMB2LQGtgRYLZnZ\nCdzzyDZcLjcXTq3/wXzv4nRF6yx48SVtNKKU+i2e4APgAFDrw3VpwPz9ykdmj/lyTh6wF/hDwAkc\nU0rZtNZvL3azpKRowvyYz5N9MgJL+jtwpK+v1trUz8T4DDv35pKUEs1bR2vpaR9m93WuZbFYX09P\nOXjqZ6dprrPxmS/tISY2gqrzXaSmxXLbXWWYVrhE+7ZdORw/1sCQbYKy7Vk+XeN2u9EXe8DgaVeE\nOYwt27Iw+jjfZi1ZrL8tljhOvtNMe8sgcbGRREaFTgn4cjhdbpq6RthkiaUoL8Wv9wr0zxFfgpe/\nwRNE3Ilno8aj+Lbibh8w/93EM2+huyXOGQHOaa3tAEqpE3j2Wnp7sZsNDk740KSVsVjisFpHlz5R\nrArp78CRvl7Y2Q9bAcjKSyQ1LQaj0cDJ95rILU5e8bopi/X12Og0R5+snFtP5ZlfnCUmzgxu2He4\niIHBlQ86ZxckwjE4faKVVB8rTbo7hujtGsFkMjIyNMXmren0D4TewPdS39t5xSn0do3w0YkWStfp\nAnZtvaNMTjsoyPTv/3N//hxZLChaMpTWWru11j/UWj+itf601vpHeAKZpZwA8pRS3vHOA8BLSqnk\n2dQQwEt40ksopbYBF7TWI8AxPJOCvfKAOh/uKYQQ18XtdtNUZ8UcGcamvESiY83kFafQ3zeOtWd1\nf0D3943x9E/P0N83TvmOTG66tZDJCTu23jEKVep1zzVJtsSQlBpNW2O/T2mvoYEJXnumGvD0w42f\nyOfQXeq62rBWFZV6Jus2rePKo7n9jDatr5QR+DDyopQqwDPyks7Hwc5e4JVrXae1nlBKfRn4jlLK\nClRqrd9USv0Dnsm33wL+Bfi2UurreFbt/dLstbVKqZ/NnmsHuoFfreQNCiHEcvR2jTA+OoPamj5X\nmly+I4vmOhvV57tJy1ydqqP25gFefaYK+4yTmw4VsmNvDtNTdk6904zL5SYxeek9aBbisDuprewh\nPimSzJxESsrTOfVuM8111kX3+HE4nJw70ca5D9twOt2EhRv59Bd3r7gNoSAxOZqUtBjamweZnrKH\n1OrBvmrwTtbNWT9zlrx8SRs9g2eE5Die+ScAOb68uNb6deD1K4791by/TwL/dZFrv+/LPYQQYjV5\nq4wKSz8uo80pSCIu3kx9dS/7Dxdd96J1NRe6eecVjdFo4PYHy+cWTTv9fisul5vwCBPnT7ZTsDl1\nWcGSfcbJy7+9SGerZ0VVo8mAJd0z7F59vovNWzOuWg21vXmA916rZ3hwkvAIE06nkxtvzl/XgYtX\nUWmaJ7Cr71+XqaP6jiHiosNJT4oKdlNWnS//A7u11n8z/4BS6i0/tUcIIYLG7XbTVGslPMJETv7H\na6MYDAbKdmRx6t1m6qv72LLTt8mvC73+qfeaOXu8DXNkGHd/aiuZs78V93WPcOlsJwnJUdx8pJiX\nfnOR15+r5tNf3O1TsDQz7eClJy/S0zFMXnEKSSnRdLQM0ts1AkBv1yg//s4HZOcnkZ2fhCUjjvMn\n22iosWIwwPbdm2hp6Mflcm+YXZiLSi2cereZptq+dRe89A9PMTAyzc6S1Ova32qtWvR/hFIqd/av\nx5RSv4dn5MVb9vx1PGuvCCHEumHrHWN0ZJqSLWlXVfiUbsvgo/eaqT7ftaLgxeFw8uaLNdRX9RGf\nGMm9j24nMTkat9tNTWU3H7zRgNvtWUk3pyCZnTflcu7DNt59tY7b7i+75gfQ9JSdF39dObeg3eH7\nSudSXpMTMxx/s5G6Ks96L4211suW/U/PiufgnSVMTdqpPN2J2pq+bqtvrrSeU0f1ncvfzyiUXCuc\nvwTYWHhNlyQkeBFCrDPeD/XCzVevvBoTZya/OJXmehvWnlEsGb6Xhk5P2fnFv52ktbGf9Kx47n5k\nK1HREUxP2Xn75TqatJUIcxh3PFRKToFnxOfGT+TT2TZIfXUf2QXJi44MTE3aeeGJC9h6x1Bb0zl0\nT+llqaGo6AhuurWQ+upeEpKjuO2+MjqaPSMymbkJlG3PxGAw8MrTlwDYcoNv+yetF+s1dbSSnaRD\nybWCl29prf9uoSeUUl/1U3uEECIo3G43TdpKWLhx0eX0y3Zk0lxvo/p8F7f4WIXjsDvnRkUKVSq3\n3VdGWLiJ7vYh3nihhrGRaTKyEzhyfxlxCZFz15lMRm5/oJwn//M0771WR8am+KvmoUyMz/DCExcY\nsI5TVpHJLXdtXnCEJibWTFZuIp2tQxiNBrbu2nTZJo9jo9O01NtITYslbR1t3ueL9Zo6augYJjzM\nSF76+vz3XLRUeqHARSllVErFa63/P/82SwixnthnnIwOTwW7GdfU3zfO8OAkeUUpi+7jk1OQTGy8\nmfrqPmamly49drvdHDuq6eseZduuTdzx0BaMJgMfvd/Cc788z/joNLtvzufBz1VcFrh4xSdGcctd\nCofdxevPVeN0fLzJ4vjoNM/98jwD1nG27dq0aODiVeLdLqDm6tLgmgvduN2w5YasdTk/4lquTB2t\nB5PTDtqtYxRkxBG+wgUO17ol35VS6h+VUn89u17LeaBRKfWX/m+aECKUud1u+rpHeOcVzU++e5xf\n/uvJVV8nZTV5q4yKShffrM9oNFBWkYl9xrlgEHClM8dbaajpI2NTPPc/WsHYyDTP/fICp99vISbO\nzIOf28GNN+djNC7+o7i4LI3S7RnYesf48J0mAEaHp3j2F+cY6p+gYk8OB44ULxl0FKpUjCYD9dWX\nt9vlclFzoYvwCBMl5Vcugr4xFJWmebaEqO8PdlNWRWPXMG73+iyR9vIlJIvWWv9PPLtDN2mtLUC5\nf5slhAhVU5N2Lp7u4Mn/OM1vf3KW6vPdhIUZcbncnDneGuzmLapJWzGFLZ4y8irdnonBsPRmjY21\nfXz0Xgux8WbufHgrdVW9/OY/TtPTMUyhsvDoH+yeqzRays1HSkhMjqLyow4une3kuV+eZ2Roil37\n89h3a6FPoyXmyHDyClMYsI7Tbx2bO97a0M/46Aybt6YTHnF9JeChKlQWrBsYmeJ8g43JJUb95ua7\nrMPF6bx8+U71rgv9KPBvs39f/1txCiF85na76Wwdoqaym2Ztxel0YzQaKFSplFVkkp2fzDM/P0tz\nnY3+vjFS0mKD3eTLDNjGGeyfoGBz6pIf4LFxZvKKUmhp6F904q61Z5S3XqwlPMLEPY9so76ql+Nv\nNRIWZuSWuzfPTZL1VXiEidsfLOe3Pz3Le6/VA7DnE/nsOpC/rPdZXJ5Gc72Nhuo+Um7x/BtUnfME\nYSst/14P1nrV0diknaMftvLG6Q4cThdhJiMVxSnsLUtne1EKEVekOec2Y9zgwUumUupFPKMtryql\nDiMjL0KIWW1N/bz7av3cnJbElGjKtmeweWsG0TERc+ftPpDP0ScvcuZ4K3c8tCVYzV1Qk7fKSC2e\nMpqvfEcWLQ39C07cHR+d5uWnLuJwuLj7U1tJSYvllacvEWE28fAXbiApNWZFbUxNj+PmI8W8/0YD\new8WsGNv7tIXXSGvOIXwCBP11X3sOVjAyNAk7c2DZGQnkGJZWwFloK3FqqMZu5M3z3Tw0olWJqYd\nJMebubE0jcrGfs5oK2e0lcgIEzdstrC3PJ2yPM92Ek1dI2xKjSF2HZe8+xK8/BFwF3Baa+1USkUB\n3/Rvs4QQocDtdvPuq/WMj06jtmVQVpFJxqb4BUcVcguTsWTE0lhrZcA2TvIKP8T9oUlbMZoM5Bf7\ntvNuTmEyMXGeibv7DxfNjdbY7U5e/u0lxsdmuOnWQvJLUhkamGBkaIrSbRkrDly8tuzcROm2zBXv\nMh0ebqKgJJW6ql56u0ZorrPNvu7GHXXxWktVR06Xiw8u9vDc+80Mjk4TExnGo7cWc9uuTYSHmXj0\n1mLa+8Y4WdPLqeo+jl/q4filHmKjwinNTWTa7ly3JdJeSwYvs0v4PzPv8Ut+bZEQImTYescYHZ6i\npDyNw/eWXvNcg8HArv35vPL0Jc4eb+XIA2tjAHdoYIJ+6zh5RSk+L/vvnbh7+v0W6mv6KK/I8lQW\nvVSLtWcUtS2DHXs8u6i0NQ0AUFy6OpNhVxq4eBWXp1FX1Yu+2EOTthIZFU6RjyNO69laSB253W7O\n19t46p1GuvsnCA8zcs9NedxzUy7R89pjMBjITY8jNz2OR24porFzhJPVvXxU28vp2YnnJRs9eBFC\niMU0zk5wvFaFznz5JSmkpMXQUNPHrgP5JKUEf/+chfYy8kXZ9gzOfNBCzfluyiuyOP1BK421VjKy\nE7jlzo/Llr3BS5FKY8axdHm1v2XnJxEZFUb1+W4AduzNue6AaL0IZuqowzrGT1/RNHQOYzDAwYpM\nHry5kKQ48zWvMxgMFGcnUJydwGeOFFPbOkSHdYw9ZekBanlwyHesEGJF3G43DTWz+wAtUaHj5R19\ncbvh7Im1UXnUWGvFaDRQUOJbysgrNj6S3MIU+rpHOflOE6ffbyEuIZK7Ht4yFww47E662oZISo0m\nYY1sjmcyGSmcNwokKaOPBavqyOF08d2nL9LQOczOklT+x5f28vt3ly0ZuFzJZDSypSCZO/fkEmZa\n3x/v6/vdCbHO2GectDb0+7RAmr95U0b5xSmEhS28qNtCClUqSanR1Ff1Mjw4uax79nQO8+zPz9HX\nPbLc5i5oZGgSW+8Ym/KTVpQmKN/h2cDw7Ik2wiNMc8v+e3W2DeF0uMgtXF5g5G+bZ9dzySlIIj5x\nbQRVa0GwFqx7/2I3fYOT3LpzE3/2qe1kraH5YGuVBC9CrHFut5vujmGOHa3lJ989ztGnLvLCExeY\nngpuAONdpM3XlJGXZ/Qlb9mjL4P94xx98iLdHcN8+HbTsu65mLmUkUpd0fW5RZ6JuwC3P1B+VcVO\n+2zKaKm1YwItIzuB2x8s59Ddvm1xsJH4Y8G63q4RutqHFnxuxu7khQ9aiAgzcv8yS983MglehFij\nxkanOXuilV/98BTP/vwctZU9mCPDyMpNpK97lJeerAzaCIzb7aaxdnkpo/mKStNITI6i7lIvI0NL\nj76Mj03z0q8rmZ5yEBNnprN1CFvv9a/W26itGAxQULKy4MVoNHLPI1u5/zMV5C1QqdTWNEB4hInM\nnLU1edJgMFBclkZs/NVbEmx0q506aq6z8czPzvLCExcW/F5/62wng6PT3LY7m8TY5aWJNjIJXoRY\nQ5wOF421fbz0m0p+/v0TnHynmbGRaUrK07j/MxV8/ss3cf9nKijZkkZv5wgvPXkR+0zgAxhrz+iK\nUkZeRqNn9MXlcnPuw7Zrnjsz7eDoby4yOjLNnoMF3HLXZgAunOpYUdu9xkam6OsaJSs38bJUz3Kl\npseRnZ901fHhwQmGByfZlJeIaZ3PP1hPVjN11NbUz2vPVQHgcro5+U7zZc9PTjs4+mErUeYw7t6b\nd1332mjkf5QQa0RLvY2ffu84rz1bTVvTAJbMOA7euZnf+9N9HHmgnOz8JAwGA0ajgcP3llJcZqGn\nY5ijT13CbncGtK2Ntd59gFZe/ltcnkZCUhS1lT2MjSy8aaPT6eLVZ6qw9Y1RvjOLG/blkluYTFJq\nNA01fYte54sm7VnjZLlpL1+1zaWM1tZ8F7G01UgddbYO8srTVRgMBu57rIK0zDgaavro7fp4vtar\np9oYm7Rz197cdb2gnD9I8CLEGlBb2c0rT1/C4XBRsSeHx/7wRj71u7vYsjNrwYmkRqORw/eVUahS\n6Wob8qzoGqAA5vKU0dUjDr4yGo3csC93dvSlfcH7HDtaS0fLIPklKXzi9hIMBgMGg4GKG3Nwudxc\nPNO54vs3zs53WWnKaClta3S+i1ja9aaOujuGOfrURdwuN3c9vIXs/CT2HS4C4PhbjbjdbkYmZnj1\no3bio8O5fXf2qrV9o5DgRYggO3eyjWNHNRHmMO7/TAX7Dxf5tPqsyWTkyAPl5Ben0Nk6NBv8+D+A\nmUsZlawsZTRfyZZ04hIiqbnQxfjo9GXPnXynifqqPtI3xXPkgXKMRsO869KIig6n+nzXiub9TIzP\n0NMxTGZ2AtF+mGfgcDjpavWUSMclyLySUHM9qaO+7hGOPlmJ0+HijofK50besnISKdicSk/HMM11\nNo6eaGV6xsm9+/OJ3KAbYl4PCV6ECBK3283xtxr58FgTMXFmHvr8TjKWuZGayWTkjoe2kFuUTHvz\nIK89U4XT6fJTiz3mUkbq+leMNZk8oy9Op5vzJz8efbl4uoNzH7aTmBzFPY9sI/yKjefCwkxs3bWJ\nmWkntZU9y76vtwoof5lru/iqq20Yh8Mloy4hzJs6qq/2ffSlv2+MF39diX3GyZEHyinYfHlK8qZD\nhRiNBj54q5FjZzpJiTdzaMem1W76hiDBixBB4HK5OHZUc+GU5wP6k5/fueK9fkxhRu785BZyCpJo\nbRzg9Wer/RbArFbKaD61LYPYeDNV57uYGJumsbaP999oIDomgnsf3U7kInMBtuzMIizMSOXpDlyu\n5b3ftibPXIbcIv8EL3OvL/NdQlZxmQWDAd57rZ7f/MdHXDjVzsT4zKLnD9rGeX52CYND95RSXHZ1\ncJ+YHM2WnVmMDU+R5HLxwM0FhMvqxisivSbEElZ7LonD7uSVp6vQF3tIy4zjoc/vvO7UQliYibse\n3sqmvESa62288XzNsj/QfbGaKSMvk8nIzptycTo8Ad2bL9QQHmHink9vu+YCalHREWzelsHo8NTc\n5FtfuFwu2poGiYs3+217gramAcLCjWSu8/1l1rOEpGjue6yC/JIUBm0THH+rkZ9+9zhHn7xIY23f\nZSna4cEJnn/iAlMTdg7eWXLNrQVytqThxE22wciuYv/Mt9oIJNEmxCJmph288vQlOluHCAs3EhUd\nQVR0+OyfCCJnv0bFhBMTayY1PXbRUQKv6Sk7Lz91ie6OYbLzk7jr4S1zOxJfr7BwE3c/so2jv6mk\nSVt5/pcz3Hx7CanpsUtf7KPVTBnNV7o9g7PHW2lrGsBoNHDnJ7dgyYhb8rqKG7OpPtfFhVPtFJVa\nFtzN+kq9nSPMTDsoLk/z6fzlGhmaZHhgkvziFNkzKMRl5yeRnZ/E5MQM9dV96Is9tDb209rYT4Q5\njOLyNPKLUnj3tTomxmbYf1sRW3ZeOw308kftdOEmx23g/Ift7J+dyCuWR4IXse4MD07y9suaFEsM\n+28rwmhc/geIfcbJ0acu0t0+TEpaDEajgckJO/19Yzid7kWvi403Y0mPIzUjltT0WCzpcUTHRmAw\nGOYWWuu3jlNUauG2+8pW/cMtPNwzYvHmi7U019l46senKd+ZxZ5PFCwZWC3FHykjr7AwE3sOFvDe\na/UcvGszOQW+zRVJTI4mvySFlvp+zwTcnMQlr2mdne/S2mDjQ7OJmw6t7odHW+NslVGRzHdZL6Ki\nI9i+O5vtu7Ppt46hL/ZSX9VL9bkuqs91AbDnYAEVN+Zc83Xaekc5VdNHXnossZNOLp7pYOsNWbJF\nwwpI8CLWldbGft54voaZaQddbUOMDE1x+0PlV034vBaH3cnLv/UELkWlFo48UDYXALndbuwzTiYn\n7ExOzDA5bmdycobRoSlsvWNYe0dprrfRXP9xGiMqJpzU9DiG+icYHZ5iyw1Z3Hyk5LLqmdUUHhHG\nXQ9vpb15gPffaKDqbBcN1X3sOVhA+Y7MFQVz8HHKqGRL2qqljOYr3Z5JyZb0ZS/oVrEnh5b6fi6c\n6vApeGmp8/zbjI/OcO7DdvJLUpc9UfpaZL7L+pZiiWX/4VhuOlRAR8sg9dV9pKbFUrHn2oELwNPv\nera1+NShIsyTDt54voaT7zRz+4Pl/m72uiPBi1gX3G43Z4638tF7LZhMBg7euZnmOiutjf288KsL\n3PPpbT6NPDgdLl55porO1iHyS1K47f6yyz7sDQYDEeYwIsxhi+4SPD42ja3HE8jYesew9YzOVbfs\nvjmf3Qfy/JKuuFJOQTKP/sFuLp3p5PQHLbz3Wj3V57q4+fYSsnKX/pC/0mosTLeUlaxEm5mdQFpm\nHM31NoYGJkhMXnweS2/nCIP9E4AnVVVb2cN7r9bzqd+/YcVB3XwOh5PO1iGSUqREer0zGo3kFqb4\nHKTWtQ9R2diPyklkS75nVK7yow4aavrYfmM26Vnx/mzuuiPBiwh501MO3nqphpb6fmLjzdz18FYs\nGXGUbs/g2NFa6qv6eOZnZ7nvsYprfqA4nS5efbaK9qYBcouSuePBLSv6MI2JNRNTbL5sr5upSTsO\nuzPge8mYTEYq9uRQsiWdk+80UVvZw3O/PE9RqYV9txZhsSw9rwRmU0Y1fZ6UUcHqpoyul8FgoGJP\nDq8/V03l6Q4O3rF5wfPGR6d5+bcXAcgtTOLWe0pxu0Ff7KHqbBfbVmGhsO52T4n0SvZ7EuuX2+3m\n6XcaAc+oi/eXl323FvHcL89z/K0GHvqdnQH5pWa98GvwopQ6AjwM9AFurfU3r3g+Evg20AmUAN/S\nWtfNez4NOAf8vdb6u/5sqwhNA7ZxXnn6EsMDnj1kbn+wfG6fGpPJyG33lRETa+b8yXae/tlZ7nt0\nOylpV09gdblcvPF8Na0N/WTnJ3HnJ7es6nyUyKhwCOLy39ExEdx6Tylbdmbx/usNNNZaaW3o59Bd\npRRvWXqiq7VnlNGRaTZvSfdLyuh6FapU4uLN6MqeBef3TIzP8PwTF5ic8Cw4duBICQD7bi2kpd7G\nqfeaKSy1EHOdC9bJqrpiIRebBqjrGGZHcSrF81KUWbmJFJSkelLNdTYKlX+2qliP/DYVXikVDfwA\n+Aut9TeA7Uqp26447atAm9b674F/Bn4073oj8Dhw2l9tFKGtsdbK0z89y/DAJDv25nDfY9uv2mDP\nYDCw79Yi9h8uYmJshmd/cY7O1sHLznG53Lz5Qi1N2kZWbiJ3fWrrmvyAXg1pmfF88gs7OXxvKeFm\nE2+8WM0bz1djn7l2Obg3ZVTop32ArpfRaGTb7mwcDhdVsxMovaYm7bzwxAWG+icwGg3EJ0bOpfyi\noiPYe0sBM9NOThxrvO52eEuks3yYeyM2htaeUX72qsYAfPJg4VXP33SrZ+G6D99u8vsCk+uJP+v4\n9gGtWmvvmt8fAPdecc69wAkArfVFoEIp5U38/TWeYGYQIeZxudx8+HYTrz1bhdvt5vYHy9l367Wr\niir25HDkgTIcdhcv/qaSxtk9S7z75zTU9JGRHc89j2xd1uTeUGQwGFDbMnj0D24kJz+Jhhorz/z8\nLCNDkwue700ZRZjXXspovrKKTCLMJi6d6cTp8HwITE/ZefHXFxiwjpNfkoLL5SavKOWykaayiiws\nGXHUV/VdFdgux8jQJEP9E2zKTZISaYHb7ebtc5387c/O0D8yxUMHC8lZYNTXu3Dd8ODkVYG3WJw/\n/4elAaPzHo/MHlvyHKXUYWBCa33Sj+0TIcjhcHL0yUrOfdhGQlIUD//uDQuuZLmQkvJ07n10OyaT\nkdee9cyPeOeVOuou9ZKWFce9n96+amuuhILomAh+98v7Kd+RSX/fOL/9ydkFP7y9KaP84tQ1PSIV\nYQ6jrCKLifEZ6qt7mZl28NJvLmLtGaOsInNutOXK+ShGo4GDd3rSSO+9Xr/i337nUkZSIr3hTc04\n+OGL1fz0VY053MhXP72d+/fnL3r+rgN5RJhNfPReCwPW8cA1NIT58yd1HzB/NmD87DFfzvlToEcp\n9TVgG5CklBrXWv/nYjdLSor26w9WXyc2itWxWH+/9XIt7c2DFJVa+NTndy177RKLJY6MzAR++e8n\n+cIVyuIAACAASURBVOCNBsBTrfKFP9l33eughKpHvrCb00UtvPLMJV74dSV3PriFGw/kz41OnJ/d\n8Xnnntw1///g0B2Ki6c7uHSmk8ZaK71dI2zbtYkHP7OTf/2ndwgLM1KxK+eq0TWLJY7W/f2cPt5K\nY7WVA4eLl33v3o4RAHbszl105d613n/rTTD6u7VnhP/5i7O0946h8pL4qy/sJi1p6ZWc73poG8//\n+jwv/voCv/uV/VjSQ+t7JdB97c/g5QSQp5Qyz6aODgDfV0olAw6t9QjwEp700ntKqW3AhdnjX/W+\niFKqFDh9rcAFYHBwwl/vA4slDqt1dOkTxapYrL/7+8Y4/lYDsfFmDt2tGB2bYnRsatmvH2Y28tDv\n7ODoUxcJDzdx16e2rvi1Qp23r/NKUrj/sxW89kwVrzxziZZGGwfv2IzRZODS2Q4izCbiUyJD4v9B\nUallbjO9olIL+28roqXJhrVnlNyiZIaGFv5ZsX1PNpfOd/HOa5qsvIRlVYY5HS6a6q0kJkfhcDkX\n7Cf5ORJYwejv45e6+emrmhm7iztuzOGRQ0UYHAt/P1xpU0Ein7ijhPdeq+cn3zvOA5/b4bftK1ab\nP/t6saDIb2kjrfUE8GXgO0qpx4FKrfWbwNeAr8ye9i94ApyvA/8n8KX5r6GU+gNgO3CnUupuf7VV\nrH0ul5u3X9a4XG4O3rmZiP+fvfeOjurKE3W/ylElqaQq5SxRAkkEiYzBBGPACXBuu4O7p3tmOs3t\nO/feN2/Ne+utuWHd6TXpTk+H6dXd7uDusd3tgG3AYIJNziCBhKRSzqFyzlXn/VFYJiNsFLDrW4sF\nnDqn9j67ztn7t39R8dnkbl2Giuf+bAlPfrX+C6txuZ78ogyefqmB7BztREh1X6f9vjAZXc3CZcVI\npGLKqrIn8vR8bNIpuU1ODoVSxoq15cSiCY4f7LqrNkeHXMSiiVRiui8okWic3+5p41e72pCIRXx3\nex3Pb6hCepepFmrrC3hgY2UyOu61JlyOqduU3+9MqYHfbDbvB/Zfd+z/uurfQeC7t7n+18Cvp6yD\nKe4bms8NYRn1UlVjpOQeVQJO5VS4Ea1OyfYvL+LQXjOdly3sfbsFSGow7heyc7R87XsrkCukE7/x\nQPfHVaRv749iqsul7dIoPWYbAz32SQsjqZIAX1zGHQF+9k4LgxYfxTlavrOtdlJmoltR11CIIMDx\nA12892oTT7yw8LaJF7+opFziU8x6PK4gZ470olTJWLXh7n0RUtwdUpmEDY/NZcW6ckSipCPsZGsN\nzRYUStmE4BKPJRjqd5KhV92xhoxIJGLNw3MQieDovs5rKgffjokq0kWpKtJfJILhGH//HxcYtPhY\nu6iA/+crDZ9JcPmY+YsLWbm+Ar8vqYFxO28eCfhFJiW8pJjVCILA4b0dxGIJVj1UeUMelxRTg0gk\nYuGyYp76WgNbX1hwX4f+Tph0JqmxyzJqqVtciMcVmnBWvh1edwinPUBBccZ9Y1pLcW/Yf24Qjz/C\nYytL+OomE7J7+PsvWFrEinXl+L1JAeZWqQxmmqE+B+4p9Dm9FffvjJTiC4G5eYyhPifFFXqq5k1d\nTZ0UN8eQm0b2fRb1cD393Xef9XbJA6WotXIunBq446KRKsT4xcQXjPLBmQG0KhlblpVMSRsLlxWz\nfG05Pk+Yd1+dXQKMIAic/Kibna9f4thd+ojdC744SS1S3HcEfGGOH+xGJpdcUeWnfFRS3D0D3fa7\nznorV0hZub6CA++18fqvziKRiBGLkxopkViESCRCLAJEIsKhZMmBlL/LF4sPzgwQDMd5bn0Zqs8Y\nQHA7Fi0vRhAETh/u5b1Xm9j64qIZL/oZjyc49L6ZjsvjpOtVrFpfSTQ+ORPrvSKleUkxazm6v4tI\nOMbyB8tn/GVNcX/icQVxOYIUltx91tvKuUZq6vPJ0KvQ6hSoNHIUSikymQSxWIRAMgpOKpNQbjLc\n0Z8mxecHjz/C/nODpGvlrFtUMOXt1a8oYenqUrxXNDAzmcguGomx581mOi4nk3tu//KiGXEoTmle\nUsxKejus9Jit5BbqqKnPn+nu3FcIgkDQ1YZcnYdUMXvT+U8Hn0QB3b1J52Pn3RQpruf9U/1Eogme\nXVeKfJrKiTSsKgXgzNE+3nrlPOseqZ50dvF7RcAf4f03LmEd81FcoefhrTXI5DPj55XSvKSYdYSC\nUY7u60QsEbF2iyllLrpLAq5WbH1vYut7G0EQZro7M0r/hD9KyqST4t7g9Ib58MIwWTolq+dP78aq\nYVUpD2+bh0gkYv+7rZw42EUiMT3FHN3OIDt+fwHrmI/q+blseap2xgQXSAkvKWYhB3a14vdFWLyy\nhMwszUx3574iEQvhHPoAgEhgmLCvb2Y7NIPEonGG+11kZqtTZscU94xdJ/qIxRM8saoU2QxE4VVU\nG3nqq/Vk6FVcPDvEztcuEvBHprRNy6iHt39/AY8rRMPKEtZuMd22EO50kBJeUswqRgZcXDg1gN6g\nYeHy4pnuzn2Ha+QgiZgPdcY8ADzjx2e4RzPH8ICLeCxxz5IapkhhdQU5cnEEY6aKlXW5M9aPzGwN\nT32tgbI52YwMunnzt+cYG3ZPSVsDPQ7efbWJUCDK6oerWLqmbFZow1PCS4pZQzQS49AeMyIRrHvE\nhOQuU2t/0Qn7BvDZzyNTGsgq2Y5CW0rI20M4MDLTXZsRBnvuPkQ6RYrbsfN4H/GEwLYHypDMsOZB\nrpCyaXsNy9eWE/BFePc/mmi5MHxPTcXmljH2vNmMkBDYtL2G2vqpd06eLKnVIcWswOsOseMPjbid\nQZatKceYp5vpLt1XCIk4jsHdAOiLHkMklpCe+wAAnrFjM9m1GUEQBPq77cjkEnILU1lvU3x2xhwB\njreMUpCtYencnJnuDpB0Kl+0vJjHnluAXCHl6L5OPtrdTiz62cKWBUGg8fQAH+5qRyqT8NjzCyg3\nza4SISnhJcWMMzbk5q3fncdu8TNvYR4bHp0701267/BYThANWdFmN6DQFgGg0JYhV+cTdLcTDVln\nuIfTi9sZxOMKUViamdLgpbgnvHusF0GAbavLEItn3mxyNYWlmTz9UgPGvDTMLeNXNoKfLuutIAic\n+LCbUx/1oElTsP3Li+4qR9J0kXqrU8wo7c1jvPtaE6FglNUbq1izaU5qsblLoiE77rEjiKVaMvI2\nTBwXiUTocq5oX8ZPzFT3ZoT+K4UYU/4uKe4FQxYfZ1rHKc7RUj9ndmkgPiYtXcnWFxcyd0EetnEf\nb/zmPB2Xx+/qO+LxBAd3tnHp7BCZWWqe/Moi9IbZGTSRWiVSzAiJRFK6/2h3O1KphMeem09tQ8Gs\ncAS7nxAEIWkuEuLoCzcjll4bVaNKNyFTGvA7molFXDPUy+kn5e+S4l6y42gPAvDkmvJZPUdJpRLW\nbjGx4fGk9vrgzjY+3NVGNBK747WRcIz332ims9VCToGObV9ehFY3e6P0UsJLimknEo6x561mLp4Z\nJEOv4qmv1VNYmlpkoiEr1p4/EXCbJ32N33GJsK8Ppa4KVcaN5rak9mUVkMAzfvIe9nb2Yrf4GB5w\nkWXUoElTzHR3Utzn9I56aOy0UVGgo+4+qV81pyaHZ77egCFXi7llnDd+ex7buPeW5wf8yeKPQ31O\nSiqyePz5BShVsmns8d2TyrCbYlpxO4PseasZpy1AUVkmG7fOQ6Gc3S/JdJBIRLH1vkk0ZCXobked\nMY/Mws1IZNpbXhOPBXAN70MklqEv2nLLHaE6swbX6Ef47Y2k565BIpudamCH1c+ZI73kF2dQOdeA\nWjt5wUMQBAZ7HVw8M8RQnxNITuApUnxWdhztAeDJ1bNb63I96Zlqtn+lntOHe7h4Zoi3XrnAinUV\n1F2n4fa4guz64yXcziDV83N5cPOcGc/hMhlSwkuKaWO438kHOy4TDsWoW1zAyvUV98VLMh24hvYR\nDVlRZ9YSi7gIuFoJenvIzH8ITdaim06aruH9JOJBMgo2IpXf2qFOJJKgM67EObQHr/UUGfkbbnnu\nTNJ0ZpDeThu9nTZOfNhFQUkmVfOMlM0xoFDefKqKxeJ0XB7n0tkhnLakg2J+cQYLlhRSUnl/7JJT\nzF46Bl209DiYW5LJ3PtQOyyRiFm5vpKCkkw+3N3O8QNdDPU5WfeICZVajnXMy+43LhH0R6lfWczS\n1bMjh8tkSAkvKaacUDBK46kBLp0dAuDBzXOYtzBVr+hjAq62ZH4WVQ5ZxU+ASILPdg7XyEEcg7vw\nO5vRFz2GTPnJYhzy9uJ3XESmyiPNsOyObWiyFuIeO4LXeg5dzirEktlly04kEvR32dBo5SxaUUxn\nq4WhPidDfU6OfNBBSWUWVfNyKK7QI5VKCPgjXL4wTEvjCKFAFLFYxJyaHOYvKcSQmzbTt5Pic0Ao\nEuOtw90AbF9dPsO9+WyUVGTx7DcWc3BnG/1ddt74zTkWLC3i7NE+opE4D2yspK6hcKa7eVekhJcU\nU0Y0Gqf53BCNpwaJhGNo0hQ89Phc8otnX9jdTBGLuLAP7EQklpFd+hQicfKVTDMsQZVuwjm0h6Db\nzGj7z0nPXYPOuBK44qSLiKziRxGJ7qy9Eotl6IzLcY0cxGs9N5EDZrYwOugmFIxRU59PXUMhdQ2F\neFxBOlstdLaO02O20WO2IVdIyC1IZ7jfSTwuIFdIWbS8mNqGArQp/5YU9wC3L8yB80N8dGGYQDjG\ngoosKj8HuYI0WgWPPbeAptMDnDnSy4mD3YglIjZunTftBR7vBSnhJcU9Jx5P0H5pjHPH+wj4IiiU\nUlasq6C2Ph/pNFVgvR8QhAT2vh0I8RD64seRKbOv+Vwq15Fd9ixBdzuOwT24Rz8i4LyMTJVLLOwg\nzbAMuXryGixt9mLc48fwWk+RZlyGWDx7fI16O2wAlFV9Mga6DBUNK0uoX1GM3eKns3WcrjYLAz0O\ndBlK5i8ppLouF5k8NY2l+OyMOQJ8cGaA481jxOIJtCoZ21aXsXFx0Ux37Z4hFouoX1FCfnEGTacG\nqVtcQEHJ/Vl5PvXWTyPuSBSdTHrf2BTvFkEQ6DFbOX24F7cziFQmpn5FMQuXFaWccm+Ce+wIYf8g\n6ox5aPQLb3qOSCRCnTEXpbYM18gBfPYLREMWJDId6Xnr7qo9sURBWvYSPOPH8NsbSTMsvRe38ZkR\nBIHezqRW5WZaOZFIRHaOluwcLcvXluN1h9DqlLMuUViK+5PuYTd7Tg/Q2GFFAIwZKjYtK2ZVbS7y\nz+lmK7cgnc1P3d/apJTwMk002jy80TvO48UGVuR8/swmQ30OTh3qwTrmQywWUbMon4ZVJWjuImLk\ni0TI24dn7CgSeUYynf8dBFqxVIm++DHU+jo84yfQ5axELJHfdbtphmV4LafwjJ9Em93wabt/T7GN\n+/B5wlTVGO+YoFAkEqHLUE1Tz1J8nrnUbef9k310DCULGpblpbFlWQn1cwwpwfg+ICW8TAOBWJzd\ng8n07PuH7czXp6G5zyX6WDTOyKCLgW4HAz0O3M4gAJVzjSxdU0p6pnqGezh7iccC2Pt3AJBduv2G\nxHK3Q6ktQakt+dRtS2QaNNn1+Kxn8DtawDjzvi+fmIxmZ+bSFJ8/Tl0e4xc7WwGYX5HF5qXFmIoz\nPrda8c8jKeFlGvhgyEYglqBQo2DIH+bAsJ2tpfefg5TbGZgQVoYHXMRjCQBkcgnlJgP1K4pTkR53\nQBAEHAM7iUe9pOetQ6GZfnu6zrgCn/UcnvHjCKaV097+9fR22pBIRBSX35+29xT3F3Z3iN/v60Ah\nl/A3LyyiNDdVBPZ+JCW8TDEDviBnrR5yVHK+aSrkp60DnLG6WWZMJ1c9+00qHS3jtFwYJhSMTmhX\nAPQGDcXleorL9eQWpqfqEU0Sn+0cQbcZhbb0Subb6UcqT0ejn4/f0YR95DyCtAqReGY0gW5nAIfV\nT0llVsrxNsWUkxAEXt7dSjAc46Ut1SnB5T4mNVtMIXFB4N0+CwBbS4zIJWIeKTLwu84R3h+08vU5\ns7uWT8Af4cPdbQhCMtlRWVU2xRVJgWU217yYrUSC4ziH9yGWqMgq3T6pEOepQpezEr+jif7LfwJE\nSBWZSBV6ZIqsT/5WZiGR6ab0Gf3YZFQ+J/sOZ6ZI8dnZf3aQ9gEXCyuzWT0/b6a7k+IzkBJeppBT\n4y5GgxHqs9MoTUs6GZoyNMxJV9PhDtDu9jM349bp32eafe9cRhCS/5bKxax71JSKGvqUJGIh7H1v\ngxAnq2QrUtnMmtdkymyyy59DCPXgc48RDdsJeboI0XXNeSKRFHVmLfrix6dEiOntsCESkcqGm2LK\nGbL6eOtwNzq1jJe2VM/qjeP9RNDTRVhTAkzv2pASXqYITyTGgWEHKomYzYXX7iofKTLQ5e7n/QEb\nVToN0lno2T7c72R0MOmFv3BZEU2nBzl9pJc1D8+Z4Z7dH8SjfsL+QcK+fsK+ASLBMUBAa1iKKn12\njKE63YShcjFWa7JgWyIWJBp2EAs7iIbtxEJ2woEh/I4mlGmlaPTz72n7AV+YsWEP+UXpqNR3HzmV\nIsVkicYS/HJnK7G4wEtb5qLTpJ63e4F77Aju0UMI4eWoDQ9Pa9sp4WWK2D1gJZxIsL3UiFZ27TAb\nVXKWGdM5aXFz0uJide7sclRMJBIceK8NgMp5RpauKaOvy87lCyPMnZ+Xcsq9CbGIe0JQCfkHiIVs\nn3wokqDQFKLUVVzJkDs7EUtVKKQFKDQFE8diYRejbT/DObwfla4KsfTehSn3ddkBKE2ZjFJMMe8c\n7WHQ4mPNgnwWVqWet3vBx4KLRJ5Obtk6PL7pbX9KhReTyfQQ8CRgAQSz2fzfr/tcCfwTMAxUAT80\nm80dJpNpCfADoBEwAWfMZvMvp7Kv95JOt59mp48ijZKG7Js7hG0oyKLJ7uXDEQeLstJuEHBmkqbT\ngwT8EcQSEWserkIiEbN6YxU7X7/IkX0dPPmV+pTK9SrcY0dxj3408X+RWIYyrRyFthiFtgS5On9W\nZbO9G6SKDHS5a3CPfohr9CP0RY/cs+++WVbd6SQaSqYvkCqyU8/z5xjzgJO9pwcwZqh4fkPlTHfn\nc8EngksGOZVfRaHSg887rX2YshXTZDKpgZ8DNWazOWwymd4ymUwbzGbzwatO+wEwYDab/8FkMtUB\nLwOrgTzgR2az+YzJZJIBFpPJtMNsNttuaGiWEU0keK/figjYWmpEfItJUS2VsKEgi10DVg4M29lW\nmjO9Hb0Ffl+Ys8f6AKhfXjzh41JYmknlXCNdbRbaLo6mCiteIREL4hk/hliqQZezCoW2GLkqd0ad\nce81OuMK/M5L+Gzn0OgXXKOZ+bREwjGG+p1kG7UzknQu5O3F0vUHQEAkUaBQ5yNXF6LQFCBXFyCR\naaa9TynuPcFwjF/tagMRfPPxeShTEW2fGffoYdxjh5HIM8gs+TJvHbeycoGCoqzpfY+n8pdcAfSb\nzebwlf8fBx4FrhZeHgX+FsBsNjebTKYFJpNJZzab37vuu2JAdAr7es84MurEHo6yMieD/DuEQi8z\npHPa4uas1cMyYwZ5syB0+sgHHSTiAgqllEUriq/5bMX6Cvq77Zw61EO5yYBSdX9qE+4lXtt5hESU\n9Ny16IzLZ7o7U4JILEFf+AiWrldwDr5PjunPPrNwNtDjIBEXKJsBk1Es4sbW9xYgQp0xj0hwlJC3\nl5C3d+IciTwDhaYQuboAhSYfmSr3rrVngpAgEhwj5Okh5O3B2SchvfjZ+1YLdz/y6v4O7J4Qj68s\npbLg/k6Hfy+JBMex9b6JMq0cXc4qpPLJhYxfLbhoCr/Ev7zdQ8+IB61GQVFW8Z2/4B4ylcKLEbha\nj+S5cmwy53iuOvY94H+bzWb37RrLzFQjlU5drgqD4c5+HhZ/iMNjTjIUMp6fX4JqEll0XxAX8aOz\n3ewfc/LXSytnVH3d22WjrzPph7Bpay15edeWMTAY0li72cT+91q5eHqQx55ZMGV9mcx4zzSJRIyR\ny2cRS5WUVq9BcheZcmcTkxprQx0xfz2O0QsQasFQ/Nly1BzZ2wFA/bKSaf2tE/Eo5rO/IRELUFS9\nDeOV+4hFA/jdA/hdA8m/3QMEnC0EnC3JC0ViVNpcNLpC1OlFaHSFqLR5N+THCQcdeOydeO0deBxd\nxKOBTz4D0o0tGErWTNftfqE5fmmE4y1jVBam841tdUhTuagm6G7aQSxsxxe243c0YihcTm7ZOmSK\nWwsxI937cI8dRq7Sk1nxVf7n79oYsflZ21DIi5vnIpNO7/hOpfBiAa6elXRXjk36HJPJ9AKgMZvN\n/+tOjTmdgTud8qkxGNImIjJuhSAI/LZjhFhCYHNhFj5XgKv9l2xBO2927mRt4Sqq9VUTx3MQY0pX\n02738lFzH7lHD6AoLiZt8VJE0ulTccbjCd55tREAXaaSvJL0m95zmSkbvUHDhVMDlM7JJif/3id5\nmsx4Txc+T4iAP4Ix78b79NmbiEW8pBlX4HBGuU+Ug9dwN2OtylqLyNLKUMceEtJyJLJPF+YfjyXo\naB1Hl6FEJGVaf2v7wE4CnsFk5JSy7rq2C5ClF5CRvoJ0QSAWdhAJDBMOjBAJjBDyjRH0jsDwmeTp\nIglyVe6Vyt4CIW8PsbBj4tsksnQ0WYtQppUhV+Uy3vEyI90fgrI2pX2ZYly+MD994yJyqZivb6nG\n6fDPdJdmDdGQHZelGbkqD61hMe6xo1gGjmEdPIU2uwFdzqob3m3X6CE8Y0eQyDMIpW3jb/79Ip5A\nlEeWl/DUg+XIpOIpe49vtbmZytXxJFBiMpkUV0xHq4CfmUwmPRAzm80eYDdJ89LRKz4vF68cx2Qy\nfRPQms3m/3Xls7DZbO6Ywv5+JlqcPjo9ASp1auoyb5zUd3S9T7OtlVa7mZdqvkS98ZOw0y1FBjrd\n/exu72Prgf1IEnGsb/6JjHUbyFizFkna1O9ML54ZxOsOAfDAQ1W3LEz2sfPuu682ceSDDp76WsPn\ntohZNBJjxx8ak0UD5xlZuaES9ZUQS0EQ8FpOAmLSDMumrU9+X5imU4NIpGL02WoyszVkZqmRTkLL\n5/eFsY55sY75sI55sVt8mGpyWfpg2aTalsi0ZOStxzn0Ps7hfWSXPvmp7mGo30k0Emfegrxp1TT6\nbBfw2xuRqXLJLHr0tm2LRCJkyixkyqyJEHFBiBMNWokERogERq8INaNEAsPJa8QKVOkmlGnlKNPK\nkSr017RhLH6Asd6D+GznP7cmxtmAIAj85v12vIEIL26cQ15Wyn/papLzFuhyVqHOnIcmM5lt2z12\nFK/1ND7bebSGJeiMK5HINBOCi1SeiVPxOD95vZtINM6LG+ewoaFwxu5jyoQXs9kcMJlM3wb+zWQy\nWYFLZrP5oMlk+gfAAfwQ+BHwTyaT6f8FKoE/AzCZTFuBfwYaTSbTNiAL+D4wK4WXcDzB7gEbEpGI\nJ0oMN0yKg95hmqzNGNXZeMJeft3yH/hNAVYXJCcwbV8X1W3NtM6tp+/JF2lwjeE5dgT7jrdw7HoP\n3YqVZGx4GEXB5B0ljx3oQiSCZWvK7riwed0hzl1x0s0t1FFcrr/t+fnFGcypyaHj8jitTSPU1t++\nXx5XkMZTAwwPuKiuy2XB0qL7opzA6SO9+DxhlGoZna0WBnocrFxfgakul5Cni2jIijpz/qTtxZ8V\ny6iHvW+34PdGrjkuEoEuQ0Vmthp9tmZCoAn4IljGvFjHvNjGvPh9114nFos4f7KfgtIMCkomF66v\nza7H72gi4GwhdEWrcLdMRBlNo79L2D+EY2gPYokKQ9mn8zsRiSTI1bnI1bkTx4REjEhwHBCQq/Nv\n6wuUU7Ka8f6jeMZPoM1uSGlf7jEJQaCxw8r7pwboHfVQbzKy/g5z0xeNeNSHz3ERqTwTVUY1kPRp\n02Y3oNEvwGdvwjN+DK/lJD7bORTaUkKeTqTyTAbim3n57V5EIhHf2V5Hg2lmC6mKhI9TqN7nWK3e\nKbuRO6nWd/ZbOGlxsz5fz0MFN2YK/feLv6HF3sb3Fn4TjUzNT5texhf183j5Zpb1ibC+9gfCCiU7\nvvxXCBIpfz2/BHUsiufYEVwHDxC1JUM61fNqyHjoYTS1dYjEN58kI+EYh/aY6W6/EgYqE7N0dRl1\niwtv0JDEo34EIc7+9/oncm48+dX6SZmCAv4Ir/3iNCDiS3++dEIjcTUuR4ALJ/rpuDyOICQXWUGA\njCw1qzdWUVh68wVzNpiNxkc8vP3KBdL1Kp55aTFtl0Y5fbiHWDRBfnEGixc1EQ8NkGv682sWs6mi\ns3Wcj943E48lWPZgGTn5Opy2AA6bH4fNj9PmJxSM3fJ6jVaOITftqj9afN4wb71yAX22hme+3oD4\nFs/U9UQCI4yZX0aq0JNX/ReIxJPfAyUSAq/85AQC8LXvrZwWrV086mPM/EviUR+GihdQ6SqmvM2b\nYTCk0XnxXTzjx8go2ITOOH0au88z0ViCk5fH2Ht6gDFHABFQP8fAD15oIBqK3PH6LxKukYN4xo+T\nWfQIadmLb3qOkIjhs1/AM36ceNSLRJ5Ji2c9fzw8jkYp5ftPzWdO0Y3+kFNoNrrpJJGKG/uM9HgC\nnLS4MShlPJh342Lc6+6nxd5GZUYZ1ZlViEQi/rrhO/y48Zfs7NnLUHuAB1UqKr7zfdanGXl/yMab\nPWO8NKeAzI2byNiwEf/FRpz79xFovUyg9TKynFyytz9F2uIlE+0IgkBXm4UTB7sI+JO+FwqFlHA4\nxokPuzl7rI+6hgLmLcxHq1Pgs1/ANbyfRCIOkVIgn3KTcdI+LGqNnKWryzh2oItTh3pY/2j1xGd2\nq48LJwbobrcgCJCZraZ+RQnF5XrOHu3jcuMwO1+/SOU8IyvXV6DRznyU1dXE4wkO7TEDsHazCZlc\nwvzFhZRVZXN0XydOSx/x0ACReB4SxdRWBxcEgTNHerlwcgCZXMKmp+smUulfrS0RBIFgIIrDV21+\nHwAAIABJREFUmhRknI4AarV8QlBR32SM1VoFC5cU0XRmkNbGUWobJrdLlavz0WYvxmc7i8dykvTc\n1ZO+n/ERD8FAlLkL8qZFcBGEOLa+t65U8V4/Y4LLx6QZl+O1nsEzfhxtdn1K+wLYXEHOmi2cabNg\ncQYozdVRWZBOVWE65fnpqJU3X6aC4RiHm0bYd3YAly+CRCzigfl5bFlWTF6Whow0BdaU8DJBIh7G\nazuHWKpBo791sIVILCXNsBRtVj1+Vzu7zsXZd2GcLJ2C//zsQvKzZ4cZLiW8fAYi8QRv91kQAU+X\n5SK7yc51V88+AB4r2zRhTjKItbx4Uc6ruTEaq9VIls/jubJy2rrHAej0BPloxMH6gixEYjHaRQ1o\nFzUQGujHdWAf3jOnGf35T/GvXIXxhS/j9MQ5tr+TkUE3H3ehbE42m5+s5XLjCCc/7CYaiXPh5ABt\nTWaWLu5Fq7YhEiuIRsXUzO3GkO2gfNHzd3X/NfX5tF8ao/PyMKZ5IqQyFRfP2uk2uwAR2UYt9StL\nKDd9kgRs9cNVVM/P5cgHHXS1WujvsrN0TRm19fmT3vlPNU2nB3FY/cxdkEd+8Sc7jLR0JVuerqW/\nuRni0NiYxfmL53lw8xxypyAMMxKOcXBXG32ddnQZSrY8XYf+FhOHSCRCrZGj1shvqdG6GesfmUvr\nxRHOHO2lcp5x0uHvGXnrCLha8YwdRZNZi1QxuTanOzGda/gAYV8/qoy5M1bF+2okUjVphiV4xo/j\ns134wmpfHJ4Q59otnGm30DOSDC6ViEVk6ZS09Ttp63cCIAIKDBoqCzOoKkinsjAdhUzCgfODfHh+\nmEA4hkIuYdPSIh5eUkxm2uzaCM0mfLbzCPEwuryVjIcSmF0OFht0t0yQGhfE/OajBI2ddoqMWn7w\nzIJZNb4p4eUzsHfIhiMcZU1uJkXaG8NkO53dtDs7qc6soiqzHICo3cbwv/0rkuEhvjJ/Hu8UKjjn\nasV85leIZGvJUChxR2IcGHFQolVSkf7JYqUsLiH3G99C/8jjjP7y59hPneXCoJQBZRmCACUVelyO\nIB5XkEWrC0kICWoW5VM1z8ixAx2E3Y2YqnqRShOMW/S0dZiIRRMsqOvAaHASGPsdKvkTk6+9I8RY\nudqL336GuOs4caC6FOYUixFJNChUaUikXTgGNUikGqTydNSZdRhy03jyq/W0NiVNMccPdGG+NMbq\nTVVTIgTcDU57gPPH+1Br5KxYV37D5/GoG3G8G6nCiLFoHq1NY+z4fSMV1QbkCinxeIJEQiART5CI\nCyQSwsQxiURMfnEGxeV6snO0t3UY9biC7HmrBYfVT0FJBg9vq5mSvDraNAWLV5Vy4sNuzhzpZc2m\nyf32YqmSzIKHsffvwDG0F0P583d0vhUEgd4OKzK5hILSjNueey/wO5rxWk8jVWSTVfzErMmim2Zc\ngdd6Bu8XTPvi8oUnBJauoWTmC5EI5pVmsqTaSIPJiFYlwxeM0j3spmvYTdeQm95RD0NWP4carzhG\nAwKQppaxfU056+sL0KQKxt4WIRHHYzmNIJLxliOPrsEBAAb9Ib5SdWPCUUEQ+O2edho7bcwtyeS7\n2+tuqQGbKWZXb+4jejwBTlncGJVyNhTc6OAqCAI7P9a6lG8CINjdxchP/o2410P6ug0Yn3+Bb0bD\n/PDcy3jDvaQT4TsLv8UrnTaGA2Fe6Rrlr+tKSb8uK6QsJ4fA49/i9H4zobgICVYKq4LYC1y0inpI\nVAT4H83vky7X8XDJOpZmVVJTdZqwf5BoVEbjpSqc7gKi0QTxWIILl+bz5LMS/PbDWHteR5u9hIyC\nh245qSbiEXy2c3gsJ0jEAshlUvoHc9FoZWQbxChkERIxf9KRURi55lrP+An0xY+jTCulZlE+ZXOy\nOXWoB3NzUgiYuyCPJ56duvwxt0MQBA7vNROPC6x+uOqmFbS9ltOAQHruSh6cV0353Bz2vts64WN0\nJ4b6nJw50otaI6e4XE9xhZ7CUj2KqyaGkQEXH+xoIRSMUddQwIr1FVPq4FzbUEDrxVFam0aYtzCf\n7JzJhUCrM2vx2RsJeToJus2oM6pve77D5sfjClFRbfhMOZn8oSiBUIxYPEE8LhBLJIjFk0JiLC4Q\niyeIhJ2k+fegUcgxlD+LWDJ7doxJ7ctSPOPH8dsukHaV9iWeSCCZJRrIyZIQBERwS+EwFk/wygdm\njl8aRSApfJiKMlg6NymwXF8kUauSsaAymwWV2RPXD4z76Bpy0TXsxukNs6I2lwfq8pBPIsrui44v\nGqN94BTGmJdLCRNdfoEqnZpgPE6by0+7y0d1xrXv/K4TfZxoGaMsT8d/enr+rBznlPDyKQjHE7zV\nN44IeKos56bmonZHJ93uXmqz5lKWXozn9CnGf/MrhHgcwwtfJnP9Q3giMV7ptCKRb8QoO4bF38FP\nmn7B0tylDHrs+BIC/6fRzLoCPSIhQTTsIOgdJeizYI/GsCwUcEkihIlzCSAA6EEtUVGZVsaAd5g3\nOt9lT5eI5UoZy4x1ZBs30Ts2wsjoJyl3FiwtJquojLSsSuz9O/DZzhL29ZNVuh256pOyBYl4GK/1\nLF7rKRKxACKxAl3uarRZy8gsh/RM9TVjIAgCQjxMPOYjHvMTdHfgtZzC0vVKUkDK34BaI2f9o9VU\nz8/l6L5O2i6OEg3HeWjr3GnfKbddHGV00E1ZVTblN/GkT8RC+OyNSGRpqDNq6Bnx8NsDHQwHwigA\nlVzClx6aQ3WZHrFYhEQiQiwWI5aIEItFhEMxhvqc9HfbGehx0N48RnvzGCIR5BamU1yevO704WSm\n1wc3z5mWMgwSiZgHHqpk1x8vcexAJ1tfWDipsReJROiLHmG0/ec4Bt9HItOi0Nw6dPJeRBkdvTjC\nKx+YiSfu7J8vFtWzsFzNhgwJ1cXCrNG8wCfal6TvSwOIJPzxwy4ONQ7zzLpK1tcXfOr+BkJRjjWP\nIZWI0OuUZOmUZOkUqBTSez4GHn+Ef/ljEwLw/SfryL6u1EMwHOMnbzfT1u+k0KBhzYJ8FlcbybgL\nPzepREx5vo7yfB2TqVscCMVo7LSyccX9mTTys3KmbZy3D/ewYlE+4Ww5zU4fT4nPkUCENHMJ/zmv\nEINKzngwzI8vD7Cz30p5mhr5lQ3Sqctj7DjaS5ZOyV/NUsEFUtFGk+J6T+r3+i2csrh5MDeTTUU3\nTsSCIPCP539Cv2eQv2n4PuoPz+DYvROxSkXeX3wbTe18nOEoL5uHcYSjrMrJYHOhnj91vMOxkdN3\n1bdMsQijRIxRIiEjISfDI6XMWIimbAHj4yc57hzkQjhGFIF0eRoPl6xnVf5SBjqdHPmgA4lUzPPf\nXIpckZRjE4koruH9+GznQCQhI/8htPoFeG1n8VpOkYgHEUmU6AzLSDMsvesqw2H/EPaB94iFbEjl\nmRNaGEg6yu55q4XBHgcNq0pYuvruw3A/LX5fmNd/mUw+9tw3l6K9iW3XM34c18hBtDnr2deWw/5z\ngwgCrFmQT6FBw58+6iIeF9j6QBmPrSq9ZV0rSD4j1jEvA90O+nvsWEY+eb6UKhmbttdc428zVVz9\nbO95q5m+Tjsbt86jcu7kHZE9ltO4hj8ARKTnPYgu54Gbhgy/8ZtzOKx+XvqrVddomibLxS4bP36r\nGbVSyoLKLKQSMVKxGIlEhFQiRiKGRNhCxGcmFhdotZYwfiUvd06migcXFrCqLpc09Y2RcdPB9fOI\na/gAHssJMgs3c7Q7hzcPdU98tnSuka9trkaluLtxaut38vLuVhye8A2fKeUSsnTKKwKNgkydEpVc\nglQqRiYRJ8dTIkYmFV31bzH5WRoU8hsXMG8gwj++1siQNZkATqeR85+enk/ZlYSOTm+Yf33jIoMW\nH4uqsvmLJ2qmfCHsGnLzi52XsblDFBq1fHdbLTl69U3PjcUTn7usu93Dbn746gXi8eRyqDCoWD4/\nyjrpIZSZ8zGWbrvm/L2DNo6MOVmXp2djYRYdgy7+6fVGZFIxf/uVxRRM0jl3JqKNUsLLJLj6h+n2\nBHjZPIxRKed7NUVIb6J1aba18vNLv2VhVg2PHvPgazyPzGAk//s/QJGfjy0U4WXzMO5IjLV5mWws\nyEIkEiEIAi1jZ3G4u4gEx4hHnBPfGY4pcDs1BII6SiormFNWglEqRxx1EvaN0d9hRqP2olRe612v\nzqxDlvMAh0bOcWjoOJF4hHR5GhtL1rE0ezFSkeSm5pGguwP7wHskYgEQiUFIIJYoSTMuTwotkuSu\nRhAE2i+N0dtpY8kDpRhy75xQT0jEcI8ewmM5CQgTWhixRE4oGGXH7y/gcgTZ8nQtpZXT49j5wY4W\nesw21myaQ82im9iAE3FGLv+IWCzML8+uYsQRIydTxdc2V1N9Jeqnd9TDz3Y0Y/eEqSvP4luPz0M7\nST+VYCDCYK8Tlz1A9fzcaStWePWz7XYGef1XZ1Cp5XzpW0uR3WTBuhUhbx/2/neIRz0oNEVklWxH\nqvhE+PK6Q/zh309RVJbJY8/dvVmwe8TNP17JAP3fvrSIiut8o+KxII7BXQRdbYgkCvSFj6LOrKFr\n2M2hxhHOtluuLFYiGkxG1i7MZ05Rxh01EdFYApGIe7LIXT/Bx6N+Rlr/jVhCxt/vX4hOq+Lb22r5\n44dddA25ydGr+c62WoqMdzbjRWNx3j7Sw74zg4hEIh5dUUJethqHJ4zdE8LhDmH3hHF4QgTCtw6p\nvxk6jZxn11WwoiZ3Yrz8oSj/+GojAxYf6+sLyNGref1AJzKZmL98opYcvYp/+eNF7J4QaxcV8OWN\nc6Y0uiyeSLD7RD/vHk9qLeeV6rnc60CjlPKX22qpKf3EtJ9ICOw+1c/O472sWZDPCxvn3Hajcb/Q\nb/Px978/TyQSJ32uHpElhMsWIE0RY2ttOw888Dxy1bWbknA8wb829+OLxXmxyMjPXr9IMBzjB88u\nuGbM7kRKePkMTIfwEo4n+LeWftyRGH85t4jCmzjpJoQEPzz7I0Z8o3z9vIw08zAqUzX53/4eEq2W\n8WCYX5uH8UbjPFyQxdr8Tx6QgLMVW9+bV/4nRq4p5oJbTzN5uBNpLLXHWL2kmERcICNLjezKLqbp\n9AAnP+qhfkUxC6pEjO/4LbG4Ewk6Cl78AbKspADgi/g5OHjkGiHmiYotLM+7ebx/POrDPrCTSGCE\nNMMy0gxLrvEdiIRjHL4SNQTJpGf1K4qpX1kyKR+NW2lhYuEEv/7xMSQSMU+/1EB65tQu5L0dVva+\nfZm8wnS2vnhzk4lt9DyBsd2c6MvnQEcFW5YX8/jK0ht2kr5glF+8d5mWXgdZOiXffbKW0tzpSWL3\nabh+0jl9uIcLJwdoWFnC0jV3p/lKxII4BncTcLUiEivQFz2CRl8HwIWT/Zw+3HtL4fB2jDkC/O/f\nn8cfivL9J+ez8LpIpZC394rg5EWhKSardBtS+bVaK18wyomWMQ43DTNqT5YSydWreXxVKcvn5dz0\nN/eHovyP357F7YtQXZJJTZmeuvIscjJVn8r8crMJvrN1J4pwI/s7K9m87gkKDFpi8QRvH+5h75kB\nZFIxX944h9ULbj1mA+NefrmrlWGrn5xMFd96vIby26Q8CIZjODxJYSYcjROLJ4jFEsTiCaJXfIZi\nsQTReAJ/MMrxljGisQRVhem8uHEO2ekq/vmPjfSOelm9MAdH9iEiiSgrNFt4fc8o0XgCmURMJJZg\n+5pyHltRMqUmO5s7yC93ttI55EavU/Ctx+ZhKs7kYq+Tn77ZRCIBX3qoivX1BdjcIX65q3XCYRiS\nmtOvbjbdtwJMXBA4OmTntffaiHqjFNVm8+fr5pCnVrD76CXePWklIYh5qKGQp9dW3DBntTi8vNo9\nhuCJMH52nJe2VLPmNs/bzZgJ4UXyd3/3d1PS4HQTCET+bqq+W6NREAhE2D1opcsTZE1eJvXZn0wO\n8aifsH8IqUxHk+0yh4dOUD0UZ96FcdIfXEvet/4SsVLJsD/Ey+Zh/LEEjxUbWH1VXphIYAxr7+uA\nhIhkLSO2RZw+ocbWIUVsFdD1e/GP+GhtHKG1aZTOVgs5BTpkMgn73rmMRCLm4W3zUGZmkV6/mlif\nC/+pJrxnT6OeOw9pegZyiZxqfRUP5C9DLBLT5eql0XqJkrRCjOobfTzEEjkafR1pxhUo00quSUZm\nHfOy64+XGB10k5OvY8W6csZHPPR12envspNboLtp4rqrkcp1aLMWgRAn6OnC77hIPBagqKIGsUxG\nd5uFkQEXc+pyp8xhNRyK8f4bzcTjCR59tg7VdSYFQRA4fXkM7+hOlNIYp0cb+M6TDayouXmf5DIJ\ny+Yl/YQudtk43jxGulZOySQ0UjPBx8/2x+Tkp2FuGWOoz0lVTc5NtXK3QiSWocqYi1SeQcjTRcB1\nmWjYzthYGkf29SCTS1izac5daXTcvjD/8GojLl+El7ZUT4wtJLVhrpGDOAd3IyRipOetRV/8OJKb\nmDLlMgkVBemsry9gXqmeWCJB17CHc+0WRmx+5pbqr5nUBUFILnLDHnQaOf1jXlp6HBw8P8SJljFG\n7X7iCYEMrWLSBemuH+v+MS8/2TVGfcEIVcYQhaVJc5tYLKKmTE+xUcvFLjtn2y3YXEFqSvXXaIAS\nCYG9Zwb4xXuXcfsirFtUwHe312G4g9ZOJhWTppKSGXRQWJRNcW46JblplOXpqChIp6owA1NxJvNK\n9SyozGbFvBzsnjCXex0cahrhePMoY44gq+py0c/p57zlIp6Il95wGw3F5fT1C8QTAjVl+ikXCs60\njfOvb1xi3BlkscnAD55dMFEOoG6OkZJsDU1dVs6ZrZgHXbxztBeLM8jiaiPff6qOriE3l7rtODxh\nFlRmXyNkhSIxfr27jaZOG75gFIVcgkZ57/2GPkYQhCvJPCf//QO+IL/vGObQkX4izjDzTNn834/X\nkq6QJX3SYoco13Uy7C/mUo+Lxk4blQXppF/lc5QhlXK024qQJqM2P50nl5bedd+vf7bvJRqN4r/f\n7HhKeJkEGo2C5jEXOwesGFVyni/PRQT4vD309byNve8gPQM9BFwneWuwiWAiyiNHXBQ/9SWytj5J\nWICT427e7rMQiid4stTIMmNyZygIAiP9Yzj7/wOxKMy5xmouNSkZHwkQiyUQAbKYQFwqJqaRIc1S\nYjCKcY6GMTePMT7qwWkLsPiBEorKklockViMpm4+YpUK34XzeE6dRFlSgtyYnPjlEjklmjI+Ohwh\nmj5A03gri7IXoFXc3DZ89cskCAKXG0fY985lQoEoC5cVseHxuWTnpFFdl0cwEGGgx0HbxVFEIhG5\nBbo71JARo9SVo9RVEPYPEvJ0YR08RZZBTUKcTX+3C68nRNmc7CmZNI4f7GJkwMXiB0qpMF2rUv24\nRsqltgusKB3GK5TzxMZHyUy7vSOgSCSiuiSTsjwdF7tsnG23YPeEqCnVz7qyCNdPOhKJGJVGTne7\nFZ8nfFe+L5C8d7k6F3XmPCL+YULebkLeVnyBdB7aupTMu0hwFQzH+Kc/NjFqD7D1gTI2LS2e+Cwa\nsmLpfpWgux2pQo+h4kto9LV3fEZEIhFZ6UoaTEaW1+QkhZJeBydaxigwaMi54nR+5OIIe04PMKco\ng//+9aWsWZBPfrYGqUTEiC1A57CbM20WPjgzQGuvg2A4TpFRe9vf9+qxtrqC/MNrjXj8AsvnZiCP\nD15xeP4kUWBeloYlc410Dblp7nHQ3DVOlcFOwteCy+Pk13v7+LDRSppazre31fLwkqLbmreERIKg\nuR3nvr1Yfv87nHvfJ9TTTdqy5bfM2A2gVspYOjeHYqOGxk4bgXAMqUREbY2YD63vk6XUs61iCxet\nrQzGzIhFYnTkMDDuY9jmZ2Fl9j1/7kORGK/sNfP2kR7EYvjqJhNPPXitVkGjUaCUiphXqud02zhj\njiCJhMCLG+fwzLoKtCo5S+YaaetzcqnHjs0dYuEVASYhCPzivVbOtlsYtPho6rJx8PwQh5pG6B5x\n4/ZFkErE6NTyezIvxeIJfrajhVcPdJKZpqDAoLnt9/qjcXYNWHlvwMqo2UlwxE9lUTr/5akFE89A\nNGjFOfwBWfocNq17jFA4zsVuO8eaR5FJJZQXJDfgv3m/HXO7DU2hloRayhJDOtK7NPGlhJfPwFQK\nLxKFlJ819RKJJ/hyRRaO8cNcbn6fsy0jHG7LYk97BReGcjnriRPMGKEgoGXtA88gWbySj0Yc/Kln\nDLM7gFiUTGa3KCuN8WEPTacHOby3Da3kAFqNj66eUkYtRcTjCRQqKSvWlbP+sWqWPViOtFLFObUY\nj0FFr6odj+oyGZ5cvPYIYomIBzfNuWaXHEskUFdUosgvwHf+LJ5TJ5Fm6lEWlwDw+oedtHUHkQpK\nhPQRjnW1kS+ZQ67+1otLOBTl4K52Lp4ZRKGU8vD2GmrrC2h3dvBuz16ihKmvraKwMIvhfid9nXYG\nexzkFabfoNG4no+1MCKxlEhgiKCnE72uD6VaSkdrAoVCfs8rWI8Ouji6r5PMbDUbHp97g03+o8Zh\ndp3s5+lFfegUQUqrn0Z2F3WMcvRqllYb6Rhy09xt51KPnXqTAcUs8d6PJxKoVHKCwWurYesNGob6\nnQz1Oskr1H0q/xuJVIXNUUC32YrR4KAwfxy1VoxEpkEsvf3EDMnJ/MdvXaJr2MOaBfk8t74yuajE\nI/jsF7D1vkE86kGTtQhD2XPIJpkk72o0ShmrapPhtpe67ZxoGcPjj5CukfPzdy+jlEv4r88vRK2U\noVJIKclNY8ncHDYtK6KuLIvMNAXhaIKeEQ/NvQ6ONo8ik4iTQsxNJv+PJ3hvIMI/vNaEwxPixY1z\naKipwWc7lzTPZi+5xtlZJYf6Yg8VaW0szbuIONRO2D9IPNDJ3KweFhc72LhQRa5ehkSqRiy5TnMY\nixFoa8W5933Gf/dr3Ic+JNTbC2IJMoOBUG8PiXAYTW3dbccqEo3z2sEuxp1BCg0aApEQveoDiCRR\nthY+g7U/g9ZmKbIMG+LMceZWy1BH8mjpcdHW72RhVfY9e+57Rz38yx+baOt3UpKTxn95biE1ZVk3\nPFMajYIzl0f52Tst+IIxtCoZ4WiCEbufmlI9Oo0cuVTCkmoj7QMuLnXbsbiCLKzKZveJfj5qHKa6\nOIPvPVlHoVGLUi7B6Q3TM+KhpddxJbvvIO39TpQyCXmfMvOsIAj8bq+ZM20WIrEE5zusDFp8VJdk\norxOSxkXBM7bPPy+c4QBfwiFI4y13YExQ8V/+9IilFel1XCNHCAaHCezcAsqjZH5FVmU5elo6XVw\nocNK55CbYVsyf06ZUcuK2lw6PEESAlSl33wjeytmQnhJ+bxMgn3jTpp6O8nzdDI6nqDfpicY/nhC\nFxBp3IjVHmT5vSALEb60BiGqRJ6uQGFQozfKqdVJGW/zI/PFEdxhYtEYUSCnaBiZNkC/Vc+ATU8U\nqM1P5xvPLkCukNDj7ufQ0DGarC3IZA0oFQsBARmDqC4nSB9LCiyCQkJ4oYFAhpxQPEFcEMiQS1lm\nTKfGY8P10x+RCPjJ2rod+4I1/PDVRvKy1Pztl+v551O/ZVzoIjpayuK0B3l+Q9UNuRcsox72vdOK\n1x0irzCdh56Yi1an5LLdzC8u/ZaYEAdALBIzJ6OC2sx5BJpVDFz2IJGIWLKmjAVLiibltKfPlNHb\ndhCP5RRCPEQkKqOnt5DaFZvJL777YmCCIBDwR7Bb/NitPuwWH3aLH5c9QCIhsP0ri25Ijtc76uHv\n/3Ce4swgX204h0JbRk7VV+66bUg6U/5+XwfHLo0ypyiD//r8whmJcvAFo3QNu+kedtN5JflXLJ5A\nrZCiVctJU8nQqmSkqWUoBQFXswWFVs7GZ2opyrk7wbG/y87et1sQS0Q8si0bQvuJR5J+BmKpGqW2\nFEVaGUpt6Q3VlxOCwK92tXLq8jgLKjL4xgYlscAgYf8gkcAoICCWqNAXP37H3DKT5Wq/EalERCwu\n8N3ttTSY7qx58gQi7D87yIFzQ4SjcbJ0Sp5YVcrKutxrcrYYDGkMjbj4p9ca6R7xsGV5Mc+srQTA\nObwfr+UkmYVb0OgXEPR0EnS1EfR0IiSSwqU3rOLicBa9jnRy0/ysqIqRJrUgJD5ZNKSKbBTaEkRO\nMeELg/gbL5IIJKOBJGk6tIvq0TYsRlFVxcHeDyl75SCM28j9xrfQrbx5BuJoLMGP375ES4+DRVXZ\nfHtbLa+17eCU5TTR0VJig8nfwJCh5C+erOTdobfocvWSp84hw7aSCy1BVAoJWpWMuSWZVBdnUl2S\neVfh0gDhaJzdJ/vZc6qfeEJg87JinlxTfsO7lBAE+ka9NPXY2XWsF4lYxLbVSc3drhN9vHe8D4Vc\nwl88XjPhPxUIxfg/f2qie8RDVWE6nUNusnRK/r+XFl8TnSYIAlZ3iM5BF+0DTi512/EGkr/PNx6Z\nywPz8+7qngDeOdrDe8f7KDbIeGZZmHf/f/beO0yO87zy/VVV5xymZ3pyTpjBIAwwJMAIUASzSImk\nRJEiFWlbsi2vvPY67u717tp7faVnLUuWTCtRpkSKQcwSA5iJHAZxcs6xcw4V9o8eDDAEQEKi5PsP\nz/P0g0ZPd3XXV1Vfvd/7nvecbiMj83msJh137WzAV2FnOpVlKp5hMp5GFUDUoFGV2LdnEr1O5G/u\n37JGtl/OxZjr+zY6g4fS1q+sub5iyRw/eXmAEyMF6QKP3ch//fxWLGYd31rhdP5xWxUl5g8+PoFU\nkJ8MvM2VNU1c7nn/APg3xUeE3d8Q33z8YSalNNm4BTVlR03bENBjdOsxeo0YvRZEk55cfpB0di+G\nXB3S7AbSkSzpvLq6HTPgAGQgs/JQLvB9oiigqhrr1xnI+LuZSRRUJcusfq6puILT0VKmk1kEWaV0\n/wKaKJAot+Icj4MGuQYHhlYvBkliOpkhr2roBIF1ZomaF5/EM9LPkK+F5x1b+IsHttI2I/IJAAAg\nAElEQVRQ7iQjZ/j7g/9MKBckO7QZU7qUW7fX0lLlIpnJMz8eZvToLKqq0bm9mi1XViOKIv2hIR46\n9RME4P7WTxHORjm+dJqJWEG9UUCgwliJOO7CuFgEFiM37Wqmqf79yWBnyF+qkiG+dIjo4gHQcuRy\nenSe7cym66kodl6UR5JO5TlxeIpoKE0mnSccSJF5T3ZBpxfx+my0bPCz7j3ktGQmz989fIRgNMNf\n37qIPj+8YujX8L6/+/2gahoPPdfD0cFlrt1YxgM3/nZuuheDpmkshdMMz0QZmY0wPBNdJapCQSis\notiG024kHM0QT+dJpPKo58wH1QgUIzCNSmNHKXdeU39eUHshTI0FefnpHkRB4Oa711Ne7UZVsqQi\n/WQTE2Ti4yj5s+Q+Se/AZK/BaKvFYC7mqbfHeONUlkp3ivs7T2CQVq4jQcRgKcNorcLu6/qtu3nn\nZYW//2k3U4sJAD5+RQ23bq+55EAzlszx0sFJ3jw2i6yolLjN3H5VLV2tJYiCgMdj5f/5/gFOjATY\n1lbCl25dt8oHUfIJ5nq/vdrZp2mFjqB4zsrJGQ89C14W4laKnGYUVSMcz2I16fjcDU2sr1JWxnWC\nbHJqNdhRl7OohzLY6jdh69yCubFptTz0xtS7PDPyS4oScO/uKKKsUPmXf4OpZi1J+0w548RIgI56\nL3/4ifWMxkb5zokf4LcUc0fxA/zi7QmMeok//OR6nFYDiqrw9MiLvDOzH4vOTFFgB4NDKu+F32Oh\npcpFS7Wb5io3zoucW5qmcXRwkZ8fPEjSOI3BlubTzZ/gyqbGCx6D7z57muEVQq7fY+H3P962Zq44\n3L/Ij3/VT15W2d7u52NbKqn220lnZf7x0WNMLSUQBfibBzqpLT1f8VvTNE4MB3jy7VEWQ6lVw1mA\nP7h9HV2tl27U+vbxWR55dRCvTeELW45iM+ZRNTgyVcrrwzXkFQmfT8HTbCdmcJFLquTCGRITMbRc\nYUw3Nnq5YWsVjRWu1cVheHY38aWDeKpuK/AKKSxexudjjM5GGZ2L0jceRgMqfFb+6rOdmI06BiIJ\nHhmep9Zu5svNF9ca0jSNd+bGeHUmiCC6qbZn+f2W9kve718HHwUvvyH+4tmHSDjH1rwmYEYS3Ei4\n0GsudIqDmLgHVchgt34aUSxEwEIkgzKfIBvJEE+pFBgsIAoqDpOC3x7Fbc5ycs5HKm8AfQrJu4Aa\nKUHLWJG8c2zpUtlZdQUNrjoEQSAtK/xb/wxLmRy6lMzVdguu8iivndyPpacaQ86MrijPro+343F5\nOBVKcWg5SiBTmNDcoWXWnTyIJ5kiseMyTs1ADg9RJUC8/C00VSTbsx0ttzZtWKOX+Pwn2qmqK5gC\nDoZG+NdTP0YD/qDj87R6zsrKhzJhTiyd5vjyacaik4UXNVDiHpSJNopFO7u21bN9U/kFyY7vZa6n\nU0leefNt+uYzjIVcaFphHGv8dq7dVM7WFh+paJaJ4QCDPQtEw5k12xPFgu+Px2elvNpFVb0Xt9dy\nwQtT0zS+8/RpTowE+MxVVpotr6I3l+Jv/vKHrm1ncwr/8LNuppcS3L+riR2bLy7o9mEwtRjne8/2\nsBRJr75m1EvUlTlorCj4w9SXOTEbdWvGWtU00lmZRCpPPJUnFElx/JVhVFkliUZYJ3DlFTVc31V1\n0Rv69HiIl39xGgSBm+9af0GfJU3TkLMhMolxsvEJMomJQks+cHCylFcG6vFaUnxp2yAeTylGayVG\nWxUGS9nvVEr/5EiAf/7FKTwOI5pW0Cmp8dt58LZ1qyTQS0EoluGXBybZc3IORdUo91n5xFV1DM/F\nePXgJG01bv7k7g3njeHixGtkwweIZqycmPXQt1DEYsJCtd/B5iYfnU2FkuPRwSUWwyn2nZonr2hc\n0e7n3uubMKIw9/3vkl4YxNBVilAlIgg6XOW7sBV1rsoxDM4t8Z09z6HEnUjeeerT09zydgi9y0PV\n3/53dM7CDXs2kOTJN0c4PRakrcbN1+7qQCbH3x/6J6K5GH/W+YdUOyovOg4H5o7wWM+LJE9tQ1AN\nWIx6kml5VTwvmsiRzZ9dwpUVWdnQ4OWOK2vR6yRySo79k6d5eeAwcd00gu5si7fT4ODrm7+Cz+Jd\nfa1/MsxDz/UQP2ehUu6z8vW7N+BxrOWpTSzE+LcXT7EYzAICDRVOrlxfygt7xwjFC5msziYfv397\n25rjND4f44k3RxiajiAKAtdsKuPj22v48Uv9nB4LAfC1O9ezsfGDM8THh5f5l2dOY9bn+VLXSRSL\njaNqGx4i+IUAxnScV3qrmQw7Mevz7Goap9StUVJSx0OvSyxGRWo8MTzmFLIqotPrqfa7qC9zY8/u\nRkXPqHIXo7NJxuZjLIZSa76/2GWiyGWmbyJMa7Wb/3R3B3qdxE+H5+iPJLm7toRNRecvEGYSGZ4Y\nHSOY06NpGuWWLH+6fSu5WOa89/428FHw8htiYnSIU6PPItuzjCyKTKkGBEsC1XD+gXKkqlExo7MU\nYdCVk9Nb0VZk0FVFRYwluNYxSaNhCEkoXCA2/zX05C3smz3MTHoSY1Ylo1jJDHVBzkyZ18JffnYz\nNvPZVUkgkOQHbw8Sryr441xR4uK6cjfHZk5ycPckpqAHWZcl2DTEn930RSw6C6OxFG9NBxlPZdAJ\nChXTpzg0VLjABEHDajKgL54hU3IcQ86DMLIdISFjRiAoQFbT2N7u53M3tjARn+B7J3+Eqqn8Xsfn\nafM2X3DsMnKGHx59hlPDMURHGMkeRssbyA5sRUvb0YsCG+q9XL2pnJZq9+ok4fPZWViM0j8Z5kDP\nIseGllcnOY8xy4bKReaiVoaWvWiABHiAYgQsKwGiz2/D5bWSiGUILCbI5xQ0NLJAUhTImSSiioZO\nL9JY6aK2tKDgOTAV5tl3x1lX7eK+Td3k0/OUNH4eo63qgvv46yIQTfM/fnKUdFbmP39646pGzG8L\nPeNBvvdsD5mcwpZmH02VLhorXFQUWy8oO/9BLY7LC3GO7ptgYjgIQB6NtEnHjp0NdHWUEo9m1riH\n736uDzSNm+5av0og/yBomkYmtcjL+4f5VXcOu1nkv9zTQGlx+QXF7i5le9FkDofFcMnaIpFElv/2\no8Nkcgr/9XNb8DpMPPraEAd6FzAbJb5yRzvttd4P3tA5WIqkeXHvOPt7F1ZX5lUlNv7i3s1rxOcC\nkTQvH55iz8k5zLoMiZyR5koXm5p8bG704XWaUFSV14/O8Nye8dVrQQB0OpG8rOIxwr3R/dhmRrCs\na6Psq39EJjNJaOpFQgmVmVQzU8laBqbixJJruQmmuj4uWxpk24k4poZG4nc9yKvH5uhZuRm3VhcC\nF4NO4In+Jzi9dIKdZZex3b8BVcmgKZlC9sxRf97x+sZTh+kfTaCrHKCpGdSUlam5HNmUDgNmWvzl\nuE0u5hZzjM3GyckqFWU6/O2T9Ef6USkELJJiYXNJO1dUbmI6PsvTI7/EbXTx9c1fwW108cK+cV7Y\nN7H6vbdtr0HW4OUDEzitBv74zo417ePvzOznF8Mv4JBcSNFqZgbdIBfm2MYKJ5oGI7PR1TJZJJHl\nmXfHONhbMM/d2FDE3TvqV4NaVdP41pMn6RkPIQjw9bs30F534fMlkZd5Z2CW514eQRRU7t/Sw7y9\nljFpPU1uG9U2M5VWE269xBuHTrH31CQLMRuKJtJaHEADBpaK2FS+wMfbRrjYmmr3YA37JwoLJLNR\nWpnjnNSXOagtc+CwGFDUQmbt+HCAjQ1FfPUT7cRlhW/1TGIURb6+vhrzyj0skMmxeyZAT7hQhlSV\nWW6vLmdbaeNHOi8fBr9Lzosxu8jg0e8hmET27XHxemY9iDIu2yzN7Q6KSg2k5DQ3llzPQ688zYJ/\nCGvMS+VQJ6HKAOlyaPK2M57SIaHwCWk3biG+6vMxmpd5M5WlJeBgy+5RRIeTUX8bz+SrkAXdas12\n19ZK9DqJ157vY6R/iQ23NXFAyRHM5vEadZSZJjky9wbWOT/+6VZETSRcOsnHb7qM1qIm/tcj3Swn\nomyvXuL1Xj9mg8ydnaPU2ZfRl95KmX8Tj/Q/weGFY5RHG3EPNhKXBAYUZTU1WlaVJVm2D0VTeHD9\n/awvWnfBMRuPTvHQ/l+y3FMHioErqgQ8uXd5vSqJoEoYhzaTiHk5s0ayGHVsbS2mvdbLdDDJ290z\nq5NskdPE5W1+tjQWsf+XAyi5Jbo6T5PRBF4/3cRAyLW6HZ/FwK6t5Vze4MDosDMXyTIwFaFvNMDI\nXIxU7uxKT1oZ//dKdomiwNYGHSX6Phoq/azr+PhvVWBrcCrMNx8/gdmo479+bssHtrZeKvaemuff\nXxlAEAQevG0dW1s+mK9xqZNOPJrhxJEZek7MgayioYEoILynGiCKAjfddTZDdymYWozz8MsDTC7E\ncVgN/OmnNlBVcumt5ZqmsRRJMzgVYWAyzMBUmEgih99j4Y6ratnSUvy+7bqqpvF/njhB30SYez/W\nyMe2nM0mHOhd4OGXBlBVjc/uauLaTeUX3c7FMB9M8vzeceJpmQdvbV3leswFkrx0cJKDvYuomkaR\n08QNXVVsbS3GcQ7PYmwuxiOvDDC1lMBm1nPb9hoS6TxD0xHG5mPk5bMHwallaF9fTW2Zk5nlJH3j\nAZYiZ9V2rSbIWOfwFavc034zP/xlP4l0HlPVELeMnKBxKsMxRxP7KzZzbUuCjvIIZilZCFLU81V7\nz4Wos2L1rMfq2YDBXMLh/kUeer6X2jIbtrZjjETH3v/zmp7M8HqUSDGiPYSush9j1s9NLV3salu/\nxnV+98RbPD/2Mh6jB/P0lYxM5Fa5Sh/bUsFnrivcUH/+Sj+PvzGMThL50i2tbGnx8fTwi7w9sw+z\nzkxeySFrCoImkg8VowYqUaIeJFHAZjYQTeawmnSkswqqplFdYudTOxtovcCiQ9U0/umJk/ROFAKY\n/3LPJppX3hfPy5wMxukLJwgtTjPVnSArS9y+aRJn4zbqfbWUWY2r52k0meMHL/bSNxHG4zDyqR0N\nvNk9w9BKOayhzMgf3epFJxRKjJoqoyp5liMJ5gMxgrE8MaGNmjI3dWVOSr2Wi14DeVnln39xkr6J\nMJevK+HLt63j3fkwu2eDbCt2cm2ZhzdnQxxZjqICsrKEhSG+2nEbxZYCZ+ij4OVD4HctUje651XC\niddA1tj7ton+TA1zpsLNwakPs6mxFG1SI5nMMdVwjLhnkXppPV0NjTw++Cw6UcfVlZ/maMiMkxif\nlHYja1myiHhEUBdy5J6fL6xcRAktm0EVRF6s+hj9ej9oGnazni0uC4mFBEUlNu76fCexXJJHhgaY\nzzjRNBU5PoB92cHShEY9AiYEUuYYcmuYhUEXV1SHeKmvCqtR4/pGiTlTnus83UgoHDPeTJ2ljMcG\nfkDaGOcK5To+fsUO9pye5/Wj00TUJYwtR0BUudJxC5/ZctV5pRRVU9k9+RbPHe4lN74OAYG7qhTq\n3/w5aBo99Sbe6HKgFyR0cQeO8XZSGSsh1gYRVpOOLc3FXNbqo2aFLKppGsHxBU49uRvZbqTx8nms\n1gxTU8WMnLIxo+oYM/hAEDAqORAgK569CbhsBpoqXTRVuqjz2xEyMkf3TDA1HyMtCiyhEVO11Unw\nXOh1Ika9hFEvYtBLGPTSyv8Lr7nsRi5bV0Jd6fu3hp/BmVp3hc/KX9/fuaZL4NeFpmm8sG+C5/eO\nYzXp+OM7O2iqvDRrgUuddFLJHGODywz3LbIwE1vzN0EvgqKhqRqiCNt2NrC+84O9efKyyov7J1YJ\nmNvb/dxzXeMlqRIvR9IrgUqBOBmOn72xOix6KoptDExGUDWNCp+V26+sY/NF2u1fPjjJU2+PsqHe\ny9fu6jjvPcMzEb7z9GkS6Tw3dFVy97UNv1Ewe2asJxZi/Gr/JMeGltEolEtuubyarnXFa7JjqYzM\nM++O8taxWTTgyo5SPrWjYc34xMcn6H7o35lUrPS5GliW7Jy7FDcZJJqrXNR5IpTqj+KzJjmSzdHZ\n+kVqXXUMzUT41pMnyeQULP5RvpzpxVVhRigzr25G0jtBMjCVXCalKDQVtWIzehB1JkSp8Mim5kiF\nTqMqhVJlRqjg22/VICsif/fFLordZlJymnguTiyXIJ5LEExFOTU5x/jyMoqYRWfMo5Mk4oMtaBkb\nLpuBv31gy3klnzP4cfdzdEf3oyRtGMavIZFSuKLdzxduaUUUhNXxPjUa4KHne8nIWaq6hlhWpyi1\nlvCVji9g1Bl5vPstugPHEC0FrpNVcCAHKolM+kA++90mg8THOiu4rrNijU7KudA0jW8+XuiEEgWB\nv/zsJrxFVh7qnyaRz7Mu10/3UQORtIk7uvLceu3O80qhA5Nh/u2FXqLJHBvqvXzp1oJSt6ppqwHM\n/buafqs2F9mcwjefOM7obIxrN5XzmY818J2+aYKZPHpRIKdqCFqCROYAjQ4jX2q/F/M5ekofBS8f\nAv8RCrvLB54kbRpAiSn8YN86qpNTLEilTFoKhE+9lMak6fHoJaKN+8haEtzXchd2g40f9zxKhx6s\nxi5OaOvwCMvcKb6FJChIop3UiyNok0mMt1VjbmokPxgke2Ka/HSAvZ4N7PNsQKdpNAoiRkmlYksJ\nuqpZ3pnZR0bJYFaayc6tIzlfmDz8RRbkXB57TKYIAUVQEYuX6F70YTLAn9+7lRq/g8zUJKf3PU9x\nc4T5iI/uY+vI6WOMrd+PUdLzF1u/htfsZSI6xbeP/4C8mic7sgE17MfrMHHr9mq2tfkx6CWC6TA/\n6X2cwV498nwdJqPI/c5FvPtfRnI4KP7s54gf2M/hSC+vX2ZHj4hTtJKOmCmbXUcmaSGGhhUBJyDy\n/jcIhxBm65YeTB4NdSqL1q0QN7k5rq/khOpFUvJUJGapTC9SmV7CJclYm5owt7RiaW7FWFUFgsDA\n6QXefGUIUdXQmXTs3BlgOTxKmK3MJYoIRDLkZIVsXiWbU8jmFXKyQi5/PgmxrMjKletL2dbuvygB\n8Qx++uogbx2fpbPJx1c+0f4biXnJisojrwyy9/Q8RU4TXz9HpOtScLFJJ5eVCS4lWF5IMDkaZHYy\nvFr6KK1wUt/qYzGe5Vj3LNa8goCAr85DYj5OJp2nqt7DjptbLipUODob5eGXB5gLJPE4jDxwQwsd\n9RfP1qiqxvBMhO7BZU6MBAhEz5ZtbWb9GuJn2QqfaSmc4sV9E6tlm+oSO3dcVUtH/dm22vH5GP/w\n025sFj1/98WuNRmPc7EUTvGtp06xEEqxqbGI37ut7YJ+PxeDpmksxXM8+nI/PeOFckx1iYUbNllp\nKU2gZAPkM8ugqbjKb+T0jIHHXh8imshR6rXwwA3NNFetXe0n+3qZ/953ULNZfPfci+nKHTz22hD7\nehYQBQG33YDZqEOvk9BLAmZPD1cXj+OVRGI5J93LWzkxmqDSGWIy7CSeNdJVNceNLWNoCxmc1Vfg\nbLoaSW/nRz0/49jSKe6ov5nrq6+98D6qMunYMInASR5+V2JwyctNrWNcu96B1bsBs6MBQTh/zBLp\nPK8enlrt1lpf50GvEzk2FKDCZ+PP7tm4higuKyrP7hnj5YOT6CuHUBJO1LCf9fVuvnbnhtUA8Nxz\nu3dmln899TCaKYZdLudvrv4ydpOVkZko//jYMYwGkS/cWUJf/BTdSyfJq3kEBBxyJY36rVjxsufk\nHMmMjCQKXL6uhOu3Vl4wQ6hpGv/42HGGpiNIokD9tRUIQoybdN08vt/PQtzGrV0uPrlz85rPqarG\nrw5M8NzecURB4M5r6rmhq/I/zFA0lcnzj48dZ3opwU2XVbFxUyk/GZ7DJEEifYhE9jTXVV7FHQ03\nI76nPPhR8PIh8B/lbTT7+rdRvBHkgMA3TmzDnoqyPjXAos7PoK0KRZAQBPDasqQa9yDoVP500+8h\nRnshfJwcet4xfYqxhMrlRWa2yftIJwYBEFImNKsK2tmatBzMM3KylIO5FiYACYUb0vtYrA4xUGVE\npxThjnQxOVlQZ3S4jIiVNizFZtrcNiYnZomcjmDPShSSthoVLVH++IZrKTIXOAmaLHP8hac4MlKM\nqooEamwsWSdRrYch5USZWoe+qRtNzPOp+rsITxfxwr7x1ZuZzaynZUOaEXU/seFm1HAJxS4jn0kd\nx9x3FEN5BeVf+zp6b+HmlOzt4d03f8avWhV0CmxLeNnjCGKPldKU2EixxYuqFBaQaiKOvLyEmogD\nGpLJCD4P1ioDjhqBlCDjy/Tg1GIEFAtvRH1EszLpfJ4isZId/mYa8ksoo8OkBvvJLyysjq1osWBt\na6fPXsuTkzrWu2y4lBBXbusmL1spangQt/fiHS2qppHPq2TzClOLcfaenufY0DKyoiEKAh31Xq7q\nKGV9vfeCBFdZUfk/T5xgYCrC7VfWcvuVv54cfzor873neugdD1Hjt/Mnd2/4wIDpvfD57MxMh1he\nSBBYjLO8mCCwECcSSq95X3GZnYbWYupbiteYVubyCr/aO85b3TMkZJUqj5UWg0R4IYHZqmfnLa1U\n1Z3lvmRzCs/uGeO1I9NowI5N5dx1bf0FDQhlRaV/Mkz34DLHh5dXW1LtBonG6kK7bUuVmzKf9X0D\nv/lgkhf2TXC4bxENqCtz8Imr6qgrc/B3Dx9hOZLmP9+zkXUf4OWSzOT57jOnGZiKUO2387U7O3Bf\nwMDzDBRVZXQ2xsmRACeGF5kPFbJDdb40V9ZOUetafg9fQSCcNvBSfwPDywUO2G3bq7nxsurziO2x\nQwdY+PEPC0KQX/497Fu6Vv/WPbjEM++OkUjnC5L/soYspDF17EEPXJuroLM8gKwIiCKIgkY8q+dn\nxzaxGDPgsc/yxRNvIlrN1P/3v+dUbpIf9z5GnbOar2/+ynk3rvdif888P/xlP42lIg9sHUDJFuxD\nJL0DZ+kOrJ7zs1tQMHpcjmSoK3OgahqP7h7ireOz+D0W/vwzm3DbjQQiab7/Yh8js1F8ThNlRVZO\njgYRHUHqN8/zJ50PYtEXMgKrma7YFA+d+gnxXAJLooFgXx0N5W7uu76Jf3rqJIlUnq9/+qyXT1pO\nc2ThBPvnDjGdmEMSJO5svI3Lirs40LvIa0emWVghv7ZWu7l+ayXttYVS05n90jSNf/hZN2OzUbY3\nznNNzRSPH2tmLOjm6o5iPndTG4qqMb2UYGQmyshs4RGOZ/E4jPzB7e00lJ/f6fS7RiyZ438/eozF\nUIpPXl2HVLbIS+MvIqDwmeZPsq1s6wU/91Hw8iHwHxW8qLLMzJv/L/hUtJCD749dznwwRWekjytC\nJ+lz1LK3tJlM3o3oWKa9/QTXWUw4JQFRZ8NX9yk0UykP9RU6hq7pPUTd8B7MtzagmtIgSNi8ndi8\nGwlFUrzx8hSxZdCMWYL6ESbjTYDAxuggMaOFEVMhe1DmtfCJq+vY1ORjOJri2YklYvlCISYTTBM5\nGUDQoBkBHTBl02FocODz2ZBGopjGY2hojAoqkZVuHn3taXS+2dUgJT/WgRIso6TIQmmRhb7RILm8\nhq5oFql8mNzwZrSUg+YyGx8ffQlpdgJL+3pKf/+rSOa1vA5Nltn/1s95XDiFqMKtpwX6q/UMevKY\nVZGrF2w0nF5GFyzUeE2t61jorOVX+nEC2cCabUnArVYjLQY9S7LCU4kMiZUfLS9Vok630lpdxOYm\nHx0+HeLUCPMnD5IfGsEUW0lzS0bcl22FDTk0McCR7jYCoSI2dFXQub0a/SWWdRLpPIf6Ftl7ap7J\nxcI547Do2dxQRFORlc0bylYdvKEwYf/Pfz9KIJrhq3e0s+USeCqw1rG3o97LV25vX80EhONZ9vfM\nYzLoaK50nXdzVxSVmfEwI/1LLM3HibynC8FglCgqsePz2ygqsVNa4cTufH9V4XA8yzPvjrL/9AIa\nsMlrRR/OoKkaG7ZWcNk1dQzNRvnJy/0sRzIUu8184aaWNdmEqfgMJxZ78eab6RtJcmIkSHrFRNBh\n0bOpoQhHMs/CaIi65iJ23NyyZiw/CDPLCZ7fM0730HJhm1YDsWRujd7KB0FWVB55dZC9p+Zx2438\nyV0da1bfqYxMz3iQkyMBTo0GSWYKv18UFIqsaSqcCcx6GRkrMmZkzUReM5BXdOQVidlAgrysUeeN\ncN91VdTWrfUd0zSN8O5XCDz1BKLZTNkf/QmW5g9uu/9p35McXDjKHXW3cXnxZaSjA2QDb6MzWLC6\n27C41pFRLHzrqZOMzcXw6uf5Qv8bqGUeHt1hISMo/FXX11c5DhdDOJ7lb394CFXT+J9f7MLrNJFP\nL5AIniAZPI6myejNpbjLr191k78YNE3jqbdGeeXwFEVOE1dvKOVXB6fI5hS2tviwWwy8eWyWmlI7\n1ZsmORw4TK2jmj/a+CVMOhM+n51Xe/fxSN/jyKrCXY0f54rSy/nxSwMc6ltc/Z7PXNfI9Vsv3DXV\nGxzkkb7HSeSTdBZv4N6WOzFIRk6PBtl9ZJr+yfCa9+skAUkquHTLmoJOy2CQFGRFJJY1Ultqp6Xa\nzdhsjPH5GLlz+EoOi5719V4+vfPSSqcXQz69TC49j9nZtGqg++sgFMvwv3/WTTCWRV/dh6siyIPr\nH6DBdfHF1UfBy4fAf1TwApCPh5k7+s8ILhFDtomXQhvYe2qehuQ0ty+8i05T2LutjMZ6NzXONIqm\ncTguMjB6DWW+IoqcJsx2PQfScWRR5I7xk3R++m6iwRNE599EVFJkFZGBwWomp8sJOAIs+WZwSD50\n6WIWZvSoK3trUPJ0xIYpUhOU3XgD23duRBQEFFVjbPIwvaO9/OpYFaomYGkN0xytQJrNoKIxjYYO\ngXIE8mgMo5G16TE4jehdBvROibT6S1Q1jFG4EiVUQTaQJhfJwpnRFig8FzTQBKxqht9feAVDKoZz\nx06K77kPQbp4ev3EVDc/Hn4SVJVb9kQpNrjRzwcwZBVkEQZrTAyv9zFvV8mpefu0bOAAACAASURB\nVFAF5FAphpwHq9GIw2zCYTbjtJhoM49TpE2iSjaU0uv42fDrLGUWkXJOkv3rQVLQFc1h8C2gSlnQ\nNIrDMk2jMhvnVfTFGoab/KizefIztZxK+FjK2zBZ9DS1+WnZ4Mfr+2CH3zOYXIjxyr4Jjo8Gya0c\nMLcocE2rn+t21GFdqZtPLyX4h592o6HxN/dv+UAX4dnlBP/01ElCsSzXbizjvl1NSKLIYijFy4em\n2N8zv4azYzXpaKx0UeYwISVzhCciZFduqharAW+xdU2w4nCZfuNU9eRCnMffGGZwOoIFKNPpiMsy\nGZ1IdMWh+YauKu64shaDXiKZydMzNc/rs68zpw6AAGrWRG5kEx6pmM1NxXQ2+/A7TLz2fC9Lc3F0\nehE5r+LyWrjxk224f40y2Znf+NyeMU6OBqktdfBXn938a4kGaprGSwcnefqdMYwGift3NZFI5Tk5\nGmRwKrx6bepEFVHQyCmXVl7S60RcNgO3djmpkV5CU9M4/dfg8F+NIAjI0ShLP/8ZiaNH0LndlP/J\nn2KsuHir8hmMRyf5Zvd3KbeV8hdbvoYkXvz3ZHIy33n6NP2TYXzaIvePvcGcX8R8z11c1bZr9X2h\nWIaxuRijc1HG5+P4PWY+taOBh17opWcsxAM3NnPtxrPk5ngugSCnyCztIxU+DYDZ2Yyr7GPoTRcv\nF2qaxhNvjrD7yDRQaPn/7K4mgtEMz+0dp6zIyl/etxmLSeKRvic4snicRlcdX93wRQ6HjvDz089j\nlAx8se0+2otaV7f54v4JntszzlUdpXz+ppb3Pd/DmQg/7n2UsegkJRYfX26/nzJbQctlajHOW8dn\nWY6kC+aWasHYMpGOgZxFUQWyio5M/kx7QAEChTbuhvKCdEFDuROf6zcz/IRCyS4VGSARPEo2UdDZ\nEnU23OW7sLjbfu3tHhjv54fPTKDljXQ0OmmrKqau3EFVsf2S5C1+m/goePkQuNCBSc8MsTT1KBhF\nXPbryPo20zMeYv7UKbaI72BqsyCIAjNRE2+FJeaciyjLFeTG2zhzEhvcRtwbfaiySuTkNIoWRdLl\n8ORtqJpINGMgp1x4ZemyGdAJeQIru22R07TFxygVkmy4rRNHZY7B0UH+/eh6ZFXi3psreCH4E4yi\ngc/5vsiBVybJZwudN1kpx1jlMKo3htWg5zqrAwEjoTGFfFRloLkJ1VxKPtNHTp1CVF3okqXkgybi\ny3k0ufAbjDqVe8Zfwp8NMdy2g51fuRfLJRj79QeHeOjUw6iKws17IjTHjOS61rO7PMmQvFDobFmB\nljXR4mqlq6YRl9GJ2+jEaXRi0hnRNI3Y4h6i828j6iy4au7iqcn9HF06gYCwuh0tr0cJlaIESxFd\ny+jLxjGoGn/ocmIQFHLPLKGuCJUpziKmTbVMWerJSyaKS+20dJTS0FqM0XThY5PLygz2LNDTPUsk\nlEZFQ3OZmZUVFhOF0oED2FZfxK6dDbi9FroHl/jusz14HUY66ovI5pXVRy63wrdZ4drEkjlkRePO\na+q4+fJqJhfjvHRwiu6BJTSgxG3mhq4qJFHg1EiAwakwiezaLqtSh4n2Bi83XduATS9+6Lq6oqrM\nLCUZnokwMhulfyK8Rm9DAGzA9kYfJTVuxhfjDM+GCej70ZWNIuhk1JQNc85P1jWCJEh8uukOrii/\njLmpCLuf6yWdytPUVsJVuxo5uneCk0dm0BskdtzcQn3Lr6+8vBhK4bQZfmOy9JGBJX7wYu97yN1n\neggLMBkUDI4UKeM8ojkBkgKigiDJICqIoorZaMBmNGIzWPCY3NxQs5NinYGl0UdRchEsno3o57ws\nP/4YajKJqb6B0t/7ymoZ9v2gairfOPodpuKzfH3zV9539XwGeVnhoed7OT4coEgJct/ka5h0AsHO\nnRx3tzA2n1hDkD4Dp7XQndNW6+LOG31MxKYYj00yHp0imAlhkAw82H4/9SYbkdndZJPTgIjdtxWH\n/+rzDDU1TWN/zwKPvT68moGzmfVc1VHKy4cK2Zi/+mznaulOURUe7n2M48uncRocRHMx3EYXX9nw\nBcpt5yvfxpI57Bb9JZ37iqrw/OjLvDH9LnpRzz3Nn+Dy0i3nvS+Xmmdm7Fl0+QApzPiqbsXlbuYb\nPz/B6GwUZSWyba1287HOCjoavKscHUVOo+Qi6Ize82weLoZ8NkQicIxk6MSqVpLJXove7CexfARN\nkzHZa3FX3Py+QeK5WEwt882j/0IqbkA/fiWxxNm5QycJVJXYqStzUF/mpK7MgcuUpqTUTyj8u7EH\n+Ch4+RC4WFQZOfUW0dy7IGsU196PIkWJzL+JKqdQ4yryO4uMZOz0Fm9jrq6XjDWGkLNRNyxQMSYy\n6/Aw1d6MuaYSOZ4jeHQRbSWLqBfA61BwGKI4TRm8ThvlFesoLirG6zDhthsRBIGxiSFeP3CUkzMe\n0krhhC93xlhXEuTd0UqyisQf3N5OV2sJe2YP8Pjgs9Q7a3iw8Qvs2T1CPqdwxc01xIUYS6llltIB\nsokZOuVZ8prG0ZMhqgZ17P3Y3cRcXirSQT69qRmv3U00ucDB6T0cHpklNlhMMO9H1FS89mWiXg1b\nzsr9OzazvrL8onVyTdPIqXl6gwM80vcEiirjNNgJ5wodLR6Dh8x8OZGohq04Ao4lcur5F4lZZ8Jl\ndOIyOmmVVBrkAknzYCbHvkyOM8nZdZ5m7qq5i/7xBMeHA5R6LXR16jk1/BibdTKnZR3r6u/BNxkm\nduggyZMn0PJ50OmI+lvpl+pJ6l1IOpH6Zh8tHX7KqlwIgkAklKKne5aB0wvkcwqiKNDQWkx7Zzkl\nZQ40TaNvPMRTrw8ztVKqsQOby13s2lHHkckwz+0ZP2/fBFjpbip0OlmMOm64rBKn1chLByfpmyik\nrqtL7NyyrZrmUgejA0sM9S4SXCpoMih6EWOxlaxBYiacXiNgV+q10NVaQldr8a9F9l0Kpzi14tk0\nNB1ZQ2C2mfXUlztAg4GpCOa8QjUChpUs36RziXT1AIIpiQ4jl3mu5pamq3BaTPQFB3m49zFScppW\nfTvigXIkdGy/rp72zWe7mEb6l3jrpQHkvMrGyyq57JraNe20v2u8fWKWn706uJpp0UsK5Y44Je4s\nqktkSpoiyjI6VWOdsYLO6g0ENZVUPkUynyIpp9Y8T+ZTqJqKKIjsqLySGyu2Ezn1GKlX+1AnUwgG\nA0WfvBvXzuve10jxXOyZPcjjg8+wtWQzn2+755L3TVZUvvdcDyeGAwiaSnVqnubkFHY5ybHyLpwN\nddSXFzRDPG6BR/YeZDA0jmiLYLDHUM7RD7fqLFQ5KhiJjKFoKg+0fpotJRtJRweIzL6OnAsjSiYc\n/qsL3k6iRDSR5ZFXBzk+HMBokLhnZwOyovHoa0NAoeT3V5/dTInbgqZpKLkoufQCmeQsY0vdCEqS\nBcnOFS1fwmX+7WkpnVju4ad9T5JRMmwv7eLuptsxSHo0VSa68A7Rxf0IaAxp9bQ33Yrfdpa3kpcV\njg4u89bxWUZWWp7ddiNXtTvZUDKJLnNyVVlZ0jvRm4pWHr6VRxGizoymqaSjQyQCR8nEC0xGUTJj\n9W7EVtSJ3ljg7sjZMKGZl8nERkCQcJRcgbPkSgTx4sF6Kp/iG93/wlIqwGdbP8Xl/k6WImnGZgtZ\ntrG5GNNLidUgDMBqyHHXNh3XbPvYb22cz8VHwcuHwPulxJbe+SkZxziaqiGIAoKox+m/GoulnfmH\n/pX04ACJqhb22DqYaD5CzpzEkrBRPrIZY86GBoRbXCTLrZiWUhQNxdmwqYxtV9cgiiK59CKhmdeY\njYeZ14pZ1jeypDopMRu53JHAlxsgFR0kn88xuOTh+IyfkaALKAiz3Lq4l022NLaOjVjWd/B47ijH\ngj3cWL2T2+pvvOg+J4InCU09j2hwo3fdQOadozzvKGGhpApXJsBVkddxGdKYHHokUyEN3Tdq54Wp\nRjI5C4Ihjb5qANG9iCRI+K0+PCY3eTVPWk6TkjNk5AwpOY2qnd+1U4CAlnAhh31s9rfxhR1bkXQw\nFp1gOR0kkokSyUYJZ6NEszHC2ShpuXBTrtJJ3Gwx4pREcjobev8Ofjb2FnPJBSpsZXyp/bOr9Xs5\nF2Gu73vkgO+GIsiCyK7qHdxUcx1CJkds/14ir79GPlDgSsgVDYxZWphWvCAIOFwmHC4zMytBhMVm\noG1TGes2ll2022ZoOsJTrw8xupLhsQJtXhtdnWUUlTqwmPUYDIVWbFGAVFYhlcmTzMgsR9K8fnSa\n8fnCOdla7eaGrZUYMzLDvYvMTBQ6g0RRoKrOQ2NbCdUNXvTnGOOF41kGp8L0TIY50re4qhVSWWyj\nq7WYra0lFL9Hf0ZWVAanIwWTydHgKmkRCl1WjSvp74ZyJ8XusynwRDrPC3vHGZgM4TUkmLMfJ+Fc\nBk1gs2MTn9pwK3bD2lLZQmyZbx/6EVEphDXl5kvr7qO57nyhwOByglef6SUaTlNe7eL629d9oAno\nh4Wiqjzx5ghvHpmiTAuzy9ePQcljkvPE0grpeAxTRsGc1bDmQDpHRdZUV4etcyv2zVvQ+9ZmizRN\nozc4wJNDzxNMB+maELj8WAQhm0OsMGO5qY2SzV9A0l9agJnIJ/kfB76Boin8t8v/HKfx0uwUNE1j\n7+l5Ht09RE5W0a8I4Z1BSTZIUxk4LnMyLY8zEhk7m9XUQEvZqXZUcU1jG3WuaorNhRb1kcg4D516\nmLSc4a7Gj7Oj8ko0VSYeOEJ04V00JYuos5BRbEwHFKJpHSaTjQ1NVTjsTkSdlTf70uztjXDTVj3N\nrihkF8mn51GVtaKh2kquVWdw4yq/HrOzefV8zCoqM8kMi+kc1TYT5dZfjxeynAryo56fMp2Yo8JW\nxhfqrkNdehc5GySuWXlX7WJXUyf1joubG04txnnjcD+HBmPkZBFRUGnxx7mmzUS1K0A+E1hjoXEG\nos4GaKhyYVFitFZiK9qCxdV6waBE0zTS0QHCM6+g5OPoDG7clTdd0OpEURX+5eSPGAqPcH3VtdzR\ncPN528omp4ksHmd0apLpiJWZiJ3FhItbr6zjmk2/uX3K++Gj4OVD4P2CF03TmH31n1BLEiiDcRgQ\nsLV1YuvcgqGikqVHHiZ+8AALZZs5bWtjrrqXiG8GUdZhH2+nUtdAZ4efI0aV2Wye68o8XF3qZjqR\nYSJRMOKaSqTJnhPpGsmSpZAqLWWJrYYxGpwOcqkZ5GyQlFDL630NVOQjbI0PkerrRcsVshWCycSE\nX8+gX2DHzntoLK1HSSWRgwHywRByMIQcjiCHIqhlacQGPWokhyAKqHYDe9Ut9GsNWEhzg/gOvvgS\nJEEyWdA8eXKKyJ6xCvaNV6BqIpIribF8CCxBNKGwqjBIBsySCbPejEVnwqQzYdGZMYgmdIqZlooK\nXjzYw2xuDNEaXc3Cu40u2rzNtBe1Um4rxWlwnFe/z8hZotkokWyMIqMdIXiURLAbELAWb2d3LMTe\n+SOYJCP3ttxFZ8kGAuO/IBXpw1ZxM8MyPDv6MvFcHKfRQUfROtxGF7X2CorGgiTffIv0cGH1J/r8\nBMo30psuJqeI+MsdtHeWU9fsQ7pEDsX4XJRfvDlC/8pKzMyKeJ5ORBEEcqp6nuYMFIZkU5OPrloP\nyfk4owPL5FcE+ErKHDS1l9DQWozpPcQ/VdMIZvLMpjIspHJUF9mpQKBnLMSR/iVOjwVXV1W1pXa2\ntpRgMek4ORKgbzJMduU7jHqJdTVu1td76ajzXlSL4wwi2ShvTL3L2zP7UDWVYrUMZ189xpSdiho3\n23bUU1RSCGCi4TSvPNNDIBgjtG6ABcskdr2NL7XfR6O7/rxtZzMyb/6yn4mRIDaHkRs+0UZx6W/X\n90iOx8jNzBAfm+D0wZMYQsv4chGkiwTemiShczjQ2R1INhuSzY6YSRLt6QW18BljdQ32zi2FuaLE\nj6yoxFN5DMllhr//bSxTS2T1AqNXNbBuawOmxCA6gxtfw32rq+v3w88Hnmbv3CE+2XAr11VdfUn7\nmUjn+fdXBugeXMZslLh/VzOXt/lZiqQ5MDTO4ckjhAyzCLbIaqeUMV9EYsFNnbOaT27dzPefHyQU\ny9LZ5OOLt7Su6SSbTczz3RM/JJqLc0P1Tm6ruwFBEFDkFIuTbxIP9aMXM+jES5/O06IDjCXYrGW4\nHeUYLaUIgkguepClqX2ASt5YzqhhG4NZGwupLOduvcJq5PJiF+s9NvSXmNHKK3leHfg59uQItXod\nGjBEI3vkDdxRW8HmC8jqA6hqnlToFLHlQ8iZAFlZoj/UzJGpYmaDhflxc5OPe3Y24LEL5DOFFvrC\noxDUaEoWi7sdW1EnBvOlEfxVJUt0/h3iy4cADYtrHa7yXav+YJqm8fjgM+ydO0RHURsPrr9/NVuu\n5JMkQydJBI8jZwtK2zqDG6t3E1bvBnR6+0eclw+D/7+CFwBNVYkfP0Sy+ySJkyfQsoVVgM7jwbZ5\nC0oqSXz/PjKSBb2gsPzgLTwdO4Ss5ZEXq1CmW7i8o5yA30gsryAJcO79ymfSU20zU6zX4UgNYkse\nYFko4ZTYwfiKu3WF1cg1fie+yG4y0X50Ri/O0mtR5RRyKkJmZJzs4DT5kSW0WKFerQEYRITchSdg\nVQe6W/wYKizkMwrxtEwspzFt7aTPuB5RkbnyrRdpSoZw33ATOp+DrDhHOjvAckzlpf56RoNuBEHD\nVWWixh3AI+vJ4SGnWFHUglNsMiMTS+YIx7Moqra60qvx23ngllqWlCl6Av30hYZWMytQMH50Gh24\njS48Jhcuk3P1udvowm8txiAZSMdGCU29iJKPoTeXMG9t4qdjb5BTcmyyFbFLn2FWVvhZPH3BcTj3\n+8psftrTLupOLmDoGQZVRbTZMG/ZjrNjHabaOnT2QqvncibHdCLDVCLDVDJDMJPHppOwGyQceh0O\ng27131Q0w/7DMwxMRgrnDoUgRlp5btJLOGwGXE4TXpcZlyCwPBYmvqJ3YnMYaWovoanNj9tbWPGd\n+Q1zySxzqSyzyQxzqewqefgMHHqJq/xutvqc5PMKx4aWOdK/RN9EeI1RY4nHQkedl44GL00VrgsS\n91bPHU1lOj7L6UA/PcF+puMFg9Eik4dPNt5KR1EboeUkB94aZXq8kLFqWe+nvMbNnt3D5LIy7ZvL\n2Laznr3zB3l65EUAbqy4ASlUR0WxjZaqs5YSmqZx7MAUh98dR5QErtrVeJ7h5qVC0zRy8/Ok+npJ\n9feSmRhHiUbXvEcWRcJuM0tOjYBLJOyQyFnKUGzrkK21aHoDLpMBr1GPx6THa9RTV+zEHI4g9J4i\ncaybVH8fKIVgUCku5YS+glhG4arwKXSqjNTeymudFk7np9GLOq7x1rEhP4tBZ8FW1InZ2YTBcmEx\nwKnYDP/f0e9QYi3mr7f+p/cl6Z5B/0SIH/6qn3A8S1OFkwduaUDTp+gNDnBiqYfJeIE0KwDerANt\nwkgw0UBacWI1SvyvBy/HaTMSS+V46LkeBqYilBVZ+eNPrqfEczYLEUiH+O6JH7KUDrDetZGieBen\nRkLMLBeykA3lDr54Uz1eu4aSTzASCtAXXEZUUrh1eaosEgnRzVTeQX/aSuwcXqBJEqmymfCbjURV\nlaXQLBvUbmrEOTQNhrR6ps1b8Ns8FJsN9IWTDEaTaIBFJ7KlyElXsROP8cJcPU3TyMTHiC3uWSXG\nTskq76Yy/N/2zjzIkqO+85/MOt7V7/V9TffcR440CI0khFaWsDlkQIGPwNeuHes9zB6G3TVrvLvG\nrDcwmLXBxgc2Zr0RRJi1vWsb7/rAxja2MMYyCCQhAdJolHP3zPT09PW6+3W/s6oy94+qPmbUOkA9\nM7TIT0RFVVbVq8z3q6yqb/7ymkwkuyqH+Z7993KgZ+8V9yVuL7Ay/zgrc19KB/ITkmLPy6gM3UVY\nHMVay+nJGh//u1OcurhE4EvedPdu7r9rF4H/wscTej46jctUL/4FnfpFhAzwggpCeKxEDebbS/gy\nZKw8hif9bJLQhNbyBGBAeBR7bqKr/zZyXXuyubIMUWuWkR3jVBei543/68GJlxfB16IqTdShcewY\nK196lJUvP4Zpph9EWShiTUL3t72Gge/6bmaSGh998n8zVb+M1+6m/vTLCXO9DN0xTF4Ich2LXYlo\nVVssLrZYXGkj4ojx1gw7m9NUw27O9O1j195+5I4SC17694cLIXfmJ9lR+zRSbGISESCXA86emCM6\nPU+pbamVJEtFj1qXpFbyWC551EqSRj5tyFmWAYcHX8Zdo6/gUO9+pJA8vVjnD05N0baWo196kFsf\n/fv1ZooC5K4C8kg3ujDOp/R+aq0cYWCIjcRsMp22FGnPjNhIVl0tO4e6+K579nLboYGsB1XC2dp5\nnq6eYLY5z0JrkYV2WnW0WdWTL30O9uzj5r5DqJ695Ba+TKP6OCCRfbfxBzOneY2o0i8lD5gKUdhD\nOeiiHKbLYmuJh6Yeph5vLmpKjYQ7TkYcOVXHWp+5oTFmhseYH9/L7MAIbX/9BRhIwWA+pBEnLEcx\nmzhTALDG4ktBOfDJAV47waxEdBZb2EaE1zbIyGAliLxP/3iFntEyYTlHMzE0k4RWbGjECbOtzhVC\nRQCD+ZCxUo4dxRwjxRwXo5jPnJuhYywl3+PekR7uGuom73nUGh0ez8atedm+PoZ7r3SDr0QxJ5Ya\n6KU6K1HCUF5gkknmGmc4vXSC5U76MfKEx8Gefdw6eIS7R+8k8K78MJw/U+Whz5xmcb5GGEbESZ5X\nvf4wh29Zn533yZmTfPTJ3yWiSTw3SnzxEDm6uGVfP7cdHOCW/f2U8gHnz1R54BNP0W7FFLtCenoL\ndPcV6e4r0NNbpKevQKWngHeV8IqXFmkcfyoTLE8RL6x3gfV6e1nsKnGsVWa237Cwp8FiTwsrBaFX\n5kj/Ue4avYOELuZbEdV2xHw7Yr4VUY+fmdmLvmS0mGNcJJSPHaPz8CMMzU3gZ3m4IXP8zeAruTyq\neM3tY3SPz/HJ83/JcmeFwVyZVweGHmlJsOAVCEq78Evj+IURDILEGj559q+ZqF3gx47+G1Tf5u58\nay21zgoz9Tn+6svHeeLiRWS+ycBgQhLUqXXW33lSSA717Ofo0C3cOniESlimPTnJ1O98jLMXFyhJ\nw9577qT3/jfhVyrEieHjnznFA49epJDz+bffdYSX7++nEyU8NbHAIycv8BXzF9jCEkl1CHPuKDft\nGuQVapB7bhlFSsFUo80nJmaYWGkRSMFrd/Rxz3Av/obRjVcF+vnMS31upUW1vf4R7Ql9dpbyHAxm\nGFr5HHTmEDKkMnwv5cG7kF7AQjviizNLPDpXoxEnCOBQd5F/NNTDwe50WH1rLfWlEyxdfpCkeSm9\nT7ndTIa382RTMrH0JMKcohWnIncg38sdPbt4WS5HrnWJpJMWSqRfTIfCGHwFfrD5AHdfODbNxz9z\niqV6h8GePD943yGOHnjuLupfC9Za6vOPU5v5PCZpkSQRkekgEfhitfvoOkF+iK6B2yn23oL0cnQa\nU7RXJmitnKO9ch5rOgyO301h8Nu3LI0bceLlRfD1usRsHNN4+imWH82EzEr6MsfzKOzbT04pHuqa\n5wFOIr0c8uItLE1uqAe3lqFoiZviafY2LjFYu4S34ctfD0p8sXKYL3cfxJSLdO2pkB8ughCUMNwU\n1jlQ8ugvlsjlusjnK+RyubXS6u8c/zh64RSVsEx3rkwlLFMJK9l2uu4OK1TC8qYlt8uNNh89/iTV\n5kny8RwDtodyMohnisQWIguRFHQCj+kpQ+1yh1xoKBcTvKJPu1hmR3GJQ8WLdHvnuZB0mIwTusUQ\nyzNHOHbSX5uy/Tvv2csdanDTwciMNdQ6y1Rbi5mgWaTaWuDU4lkmV6bWzuvN9XCoPMJYZ5pdskMh\n6MLEdUr9t9O/6zs2vYetuMXZ2nku12e43JhhamWaqfo0LVPA94bwvEF8OYSUPVcMy15ZnGdwZpLB\n6UkGZ6cYKeYo7t1H8ZAid+gQUalCLYqpdWKWo3htuxYlrEQxy9n62UTO8+EJwWA+YEcpx45inrFi\njtFijtB75siYE1OLfG56kYemF2klhoIn+ZbhHr5luGdtUrbUzpbJehu9VOfEUp0LKyskyRxJMk2c\nXCJOpiBrGi1EgZ78HvZ0H+KW/kPsqVQYyAWQNIg7C8TtbOksErerRO1FTLz+jHlBGS/sxsoeHjrT\nzaefFDRti4L6ChRTYSGa3XTmhkgWhpGdLg7t7OXogQEODHehH51kbnqZ5kodz0/wvQQRGKJyQKuc\np13KU1ycY3hygtHJs/RWZ9fibucLzI7voTq+i7nxUY6vLNHunEB2zyGEReAx6u3jJqsYjEbotBLi\n2GCNxdh0mgRrLcZYYmtpBoKWL+kUPOp5j0ZO0vKvzMdBq4m6cJrhVp3mHXcxsWB5+vQ8reUOXmJ5\n5ZFeGD3Bl+YfecF5oODn6Q4rJDYhsYbEJNl2QmISYptsKvoFgr58DwOFfvrzfezt3s3LB2+ma5O2\nNtYYap//B+Y/8SfE1SoiDOl57X30veF+vHKZzz85xcf+UpMkBrWrhzOX1sc2KZUEpcNfZtmbYl9l\nD2+99V9SDAq04oQHLlX5wvQiBjjSW+JNOwcJY8upp2aYmapR6S0wMNRF/1CJylVdjJejmJlmBzXW\nS7yhV1RiYk5NfoYnLn2eM+0WF+MEiyCQHqH0CWQA+HSMR8f6GAJCL2Q8yHGnv8i4TDsRnDHjPGaO\nMMd61d2hSp43D65wavZxHqme5HizvjbdyZ4g4I7ucW4bfQXd/UefMR2AtZbZ5jynFs/Sipsc7D1A\nfzDIJz53jgcevYixlpfv7+eH7jvIUO/m7WhMu000M01naorO5SnixUX8vj7CkVHC4RGC4WFkuN4W\nLGnUaV+4QLUIv3L6d0kw/Pjtb2V3ZSfWWrAJ1qbzJsXthUysTGRiZd2mZfJczwAAF/JJREFUfq6f\nfNcedqnXsNJ89jY+L4YbIl6UUvcB3wPMAFZr/Z6rjueBDwKTwEHg/VrrE9mxfwrcBiTAaa31/3yu\nuL4RxctGbJLQPHkiLd0dP0br7FlWR3+zYcDEoMfEsE+w6whH2mP0TF1EnNGY2rq7OhzfSenIEQqH\nDtM4foylB/8e225jwzyz+2/j4e7DnGgJ8uNlCqMlRFZC6Sy2ac00aM82SVqp+PE9SehLcqFHuRhQ\nLobpupCtN+yrlEL6yrk19+VUfZrHZr7KYzNf5XJ9mquRoozv78T3d5LzdxB6IYEUxHFE0666+dvY\neAIbn6ORTGPsM2fpHhQ5vKW9nDs1ho0Ddvbl+M69HvtYwu8qkxsfJxgZRQbP3h17sb3E8epJjs9r\njldP0Mi8KMLCWCDZLTx2Hg/Z172f8t4D5PfuIxgYvGKkzKVOzIV6i4v1tAroUqNNtMGj4Udt8ivT\n1OUsK8EsSTJN/0KDI/Mhh9sVumsRnQsXsPH67E3ByAhFdZiCOkzx0GH8nmfORWStpZkYlqOYpXZE\ntd1ksd1mtrmALxJCzyKIgA7WdDB0SEyHyLSJkg79hT4O9OxjX/duCv7mbVIGB8tMXp5nsV1jrlnj\nsfkGJ2s+kfUQROSSk4R2Ed/fyVKSo5lUic0sJpkhMQtsLKX1hj0M5UYJ/HHqZpgFk8du6DbskVCi\nQYkGXaKZrRuUaFIJJN25HIUgx3w74XJb8MT5Avp0gU47bQPUtadMYaxIZE4Sx2eJk0vr8XeKRHPD\nJAvD2Ho3w+UGe/qWKPcK6Oli3hugUfMYPX+WsQunGL00gZ/dj8TzmBsdY3psF5fHdzHXW6HRvkSz\nfREjp0GmJfmg2c3A9Dg98zvwkhc+iJgQIKTAWoiN4TKWaU8gywHFrpBKOYSugKgrgKvmTLI2Io4v\nE3UmiZNLWOY39sR+ViTgC4FEIoWXDssvfBABIDFGEEeW9pJH0iqwr3+E+2+7idHyIP353hdUzQSp\neLGddlp1/sUvMP/JPyNZXETkcvS+7tvpff0bubBi+PAfPUG11ma0v8jRgwMcPTDA/h3dJCT89lO/\nz2MzX2WsNMqrd/8An73cZjlK6M8F3L+jD+9y44qG6FcThB59gyX6B0v0D3UxMNRF32CJsfFeTl2c\n5OnqSY5XT/B09STL0cra7walJBDpnGqRtWlhC0tsYRPnMCN+ib7iyxjvvYOBYomiWSTfuUTYPIvf\nOr9WdhEygMIYJ4zPY7VpzmUFKF947CyPs7d7F725HiITMbkyxanFMyx1rvy+VMIyN/UdYljs57HH\nLCcvLON78OrbejjaX2dwsYWdnlkXK/Pzz58nusrIMMR0OtmI5SmNnCDcvZP+/QfwRirIoRzGrxO1\nq8TteaxZ92SlYmU3YXEXgeiDpiWp1xm7/QgL9c2s9uK57uJFKVUEvgoc0Vq3lVL/D/iI1vrTG855\nJ2C01r+glLolO/4qpdQ48OfAbVprq5R6BPghrfXJZ4vvG128XE1Sr9PQT9M4fozGU08RTV9+xjnt\nQkB73w7yNx9h5Ohd9A/tuqKEkdTrLH32Myx8+m/SOnnPo+vOu1g5ei9PxUUudDos+tD0WfMK+O0E\nrxYjah2SRkyzHbPciGhHz53xRH6F4vAsoneKJExLIBKP8dxebu49Qn/XGNXoIhPLpzm9dIp20gYC\nAq/CzvJ+Rrp2Uwp6mWvOcGHpFPOtCaxdASxCFPC9nQT+OJ43TJxcohOdpLB8gZG5iB2zMaMzMLjY\nxLsqv1opEQNDFHfupLBzJ7nxneTGx/H7BzCNBs1TJ2mePEHzhKZx/hzT3YKJ0ZCJHTku9wdrHwJp\nLIPVmLHZiKFFQVEOstw7xuXBHSx09xOFIZEfYjyP3uVFBibPMThziYGZSfoF5HfsoD17mUvJAsf2\n5NB78nTCVKiNTXc4fCnmQCOPZ31otfGqNeSGKoVaucilvhKTvXk8mZBPIoI4puPHNEKoFyTLJclS\nl0cUfG3dgQXQ7efpDorkvRw2zrPSlCw3LY2kSeQtI4IO+J0sm3j43jieN4C1CcYuY5JFyLwOCA+B\njyfLCDmIJ3uRsoKUeTxiBqkyLObpp0ogEuqiwhwDVG2Fus1TtwHP9gW21tKeb7FyapG4HoMU9Ozq\nYv+hIsOFiD6xTMksUDMhl6OAifYi851pOvFFVqf2tHGepDqIWC4xVm2yr1plf32Wvtb6hJK2L4e/\nO4/cWYSRkBNtnycbkknboR2uVxOadoGgNsK9lVvZX9lBmPcJc+mSy/kEoYcRYIVIBYqA5ShhMYpZ\njCIWOzELnZhqO2JpukH15AJRO6GQ97n7lhHu3N1LkKRjAzXbMZNLyxyvnmMhN02jOEfkzbEuECWe\nN4TvjSBEASHCtPO5CMEGYAN86dHrdRiUSwxQpV8sZQKxgS8MxsJ8vcDMSpGZlRKL7QLJcD9RTx/d\n+Qr7PNjVrjNQryEWqkSzsySNOrbdxrRbmHYH025l4fZaRwAAkcvjlbvAWpKlpVSsez5FpSgcvYOo\n1E33QDdxLk/Vy1EVkvnYMttqc2z2b1loPoEgh+d10+OVKNZ92vMW0Q7woxwDlR4O7R1j164hlmp1\nZueXmF+osbC0TK3eIBERiZeQhIY47NAoztIurL+3w7bP4HyO4VmPHdOW7igin2uRCyOCXIxXEIii\nBwUPU5QkBY9W3uP0UpvjJuFSb9q2xrOwL/C4ORewTwj8hkHUJZ7oJZcfI9+/n9zIGH5/Py3b4fTS\nOR65/Dinl86x2L6y7RSk1dsjxaFUrPg9TFw8zqWpk8jlOmFkiXxJrRSwUJG08+lzI4ylu2bpq1kG\nGjCcGPpCi+3xsT1pD9BwqoV/qYV3uY2oRldU64vuANHtYyOLXYrgKuEhyj4M5YgGigQyh98QsJhg\nl9tpfmhdWdgceePrqXzfD236TL9YboR4eR3wLq3167LwO4BxrfU7NpzzYHbOg1m4BowD3w98i9b6\nLdn+XwNOaa1/7dni227i5Wqi+Xlqx57g3BOfY6aQ8NRAzJlS84qqiK6gxK7yODvLYxT8PLFJiG2M\n6XToevIsgw+fIF9NSxbV3f0s7OlHCEns5Zkv72C2a4yF4gA2a0Xe1Vmmt7WANAZrEzAGaxJMtl5d\nYtsmEateA4mN89goh4lygAQhsJ7E5ENMIY8p5IgLOYz/PKVTa8lFLQpRkyBqISKD6MR0LS/RtbJE\nLmv4bEX6+l4petSKPkt+F34sKUYRpSiiGMd4FowQ6X8TgtiTSGOQ1iKsBWtp5AKWC3lqxQLLxTwd\nL8HYBbBVsFViuZK6ZDJKrYCeeo5SO1jbbcVqPCJdS7BCZvvTj5gVFkO2FqSjxl71+K1eT1rAppNQ\nCpsOcGaExUiLlWkH1I0ZW1qBWFvS6wjW1xtFgQWS7FqsXkusml6C8TDCw/oe1ltdfIwMsNLHSj/L\nf6n72BKn7mRiWAvHWJLUiyi8NXEjjUAa8BOLFxuCxOInyYa0ibUFUq+ERWAMmMQiBIReQjGI8ISB\nrDOuNdlWZpjV95dFkGTtPSzpPQ8jk9o5s38rlLQCj1bgY4TEw5AIi/UMaydaIAkQscRPBKE1eHbD\ni33VgFmaV2+OBaw0WEy6FulihF3btpjsZq1GtXpn19dGJFixftGc6aIQd1OKy3R1Cgh8OjJHLEMS\nP0fihyRBiPFDkjDEes8+hodnIkI65EREXnTIiU5mN4/EShIkifVIjMBYSWIlxgoEIK1BWINcWxIk\nBmGT9Bg2M+H6/eyaX6B7ZgYvjjGeR623n8gPibN8lT4Tcu2ZWQjPUc1NEsvOuplfBNIKuqMivZ0u\neqIyhSSfxbee/7BkaU/fEcKa7HkyaTg7Jiy0vIiZwjLThRr1sJPZVDDU6KLcyaX/A5H9n9X3BBhE\nZhebVclka5PZzaTxSmOJvITlQoeVfJQ+txvIdwKKnRyeCWgFLeq51pXnWChEeYpRiXxUIH3s0/gS\nTxAHgiiQaeFHABgMCcZGWBMjkg6WGCMSEpEQe2btdSIM+EbiJzJbi3Q7kQSJ4MBKie99y0+8+Ju2\nCc8mXr6+oSVfGEPAxi9+Ldv3Qs55Ib+9gt7eIv4Wtsq+msHBZzau2toIyuw4vIfD3/uda7uWWjXO\nLlzkzMIEZxcucGbhPE9VNU9V9TN/3we8ocDeSx63H28wPjFP38RGV+KXAWjn8lzYfZBz+27i0vhe\nVipb/79yzQbdS1WK9WWK9RWKjWWK9WVyrSbNYol6qUKjq0K9VKbeVaFW6saU1uuPn1kRtTnPLMO8\ncDzSbskbsTYmSWaIk8skyWXq+Rnq+ZXNfv7SxgDPNvTOZmTCadMPzmqXqW9A1iTJMxQiEKbHnzmO\n7NdDaoR0RmVxxSLWvg5pWBLgecP4/g58bxQhwlS4Z8uLIZEBTQLW/EqbFfcEW3e/KuPw/AP6buAA\nRVYFaQdjm1jTxNpWur22dED4CAKE8IEAIbKFtGpMiBBP9mOEzzzw/JUqLxwf6EqqRPFpOtEpprqW\nmWIrC7cCKXsJZD+eN4An+/G8PoTIkZDmSwl0WYMxiyRmPm17ZuZoinma4df4b1fvuQdpPs0hRBee\nyCEIgQQrIxI6xLaT2p/4ikvM9lb40Wv9jbyKayleZkgHEF2lku17IefMAAeu2n/quSJbWGg81+EX\nxfXwvGyOYMzfydjgTl6VteNdiepMLk8RmQhf+njCw5c+vvSu2DYXp0jm57HWYNYWS4jhsDUcsoZ2\n5wwrIgAhsXhZfbtMw0KSllIknvTxhbzqtcuGcnPaQLQsoexJ/KKHGOwjoZ9WAs3I0IoMzU4CxoI1\nWGPSkodJMItztICmkLSkIBgaoilzV3idIK1fj1oNZlvTGCKESEsuUqQT3wlhMMbQNJZWBFiLh8Gz\n6Zw6aTlq1bSrqU+9Hqm1BUJI0iHjDmDZT5sVIhGBlKxXuGcNM+2qFyAtRXlIpBVpiQeyko/Iti3S\nZr0PSX9ns5KYwWb3KW0k51sP33pr80ZtSPWahyX1E0gsWckOkV3HYlL3BZ6wSGHxJGtVGliRjV9o\niTFIDH5s8RKLMEBiEUl63MaGJLFIICc8AguhEfhWEFhBYCC0Fo8Ia2M6QGwFkWeJBUQCIk/SCkNa\nQUDb92G1hL5q/axkuGpXgcUXmaEApMyGG8tm7BWpNcTaGsSa+ymVAkKm/9HYAGECBN6arUAQi4Q2\nCXUMofUpmdWCsc3smtoxvTNpPpPSIoTFE6lHTLLmC1r7L77NYrISicDL1qsCxZMSu9pWSqzmNzIv\njCTOvEehMEgmsXZyLU2rXh5jII7BehI8L10HHngSfC/9AEmBlRKZNR4msZAkiDjBJpbECGICIgKs\nJzB+WuUlTYxH6mHxTUwoYoRv0rwjJQaPRMh0W3hp7hEeRmQ9BFc9CoDNGgKvhkWcEDbbSJI1b6jM\nPGhy1eOR5XUp0v2rYQxr3o/UO+IhpUB6CZ60CJmA3DDqtkg9P753HhMlmffEZO8em7bTsTYNr3lL\nszZuq17U9AAJYD0fKz2slFjPW/2rWOtj7SFqrBDJGE9IpEjbGKVvT5AmQcYJIorAJCB9jCfT66WN\nodbeS1YIhAgJggGsKGCMIIkFsbUkzJLYmIQIiyUvfTwh1mxobS+WMrHZyXLSoG5aaQKyOJCrz87q\nf023JX662BCJn74NTfb/zPpTuZpPyV4hrHoWibEi4Ydfee+1HOdl0/3XUrw8BOxWSuW01m3gHuAj\nSqk+INZa14BPAncDD2ZtXr6ita4ppT4F/AellNBa2+ycX7+Gad02dAWlZ+36eAUHeq+UfzeIr0eL\nP79YVF9vchxXceOE+TcfztbXF2fv68eNsPU1mwhEa90A3gr8mlLqfcBXs8a67wTelp32IVKB89PA\nTwBvyX57kbQX0q8opX4J+OhzNdZ1OBwOh8PxzYMb5+UF4BT89cXZ+/rhbH39cLa+vjh7Xz9uxPQA\n128KVofD4XA4HI4twIkXh8PhcDgc2wonXhwOh8PhcGwrnHhxOBwOh8OxrXDixeFwOBwOx7bCiReH\nw+FwOBzbCideHA6Hw+FwbCuceHE4HA6Hw7GteMkMUudwOBwOh+ObA+d5cTgcDofDsa1w4sXhcDgc\nDse2wokXh8PhcDgc2wonXhwOh8PhcGwrnHhxOBwOh8OxrXDixeFwOBwOx7bCv9EJ+EZHKXUf8D3A\nDGC11u+5wUl6yaCUGgHeB9yqtb4z29cHvB84AxwE3qW1nr5xqXxpoJTaT2rrx4BxYF5r/V5n72uD\nUkoCfwZ8EQiB/cCPAAWcvbccpVSB1NZ/rbX+Ty5fXzuUUl8AWlkw0Vq/7kbY23lengOlVBH4TeDH\ntdY/A7xcKfW6G5uqlxT3An8KiA37fg54QGv9fuBPgA/eiIS9BOkDfl9r/Yta67cD/0QpdQfO3teS\nh7TW79Va/zRQJC0EOXtfG94HPL4h7Ox87fgrrfWrs2X1e3jd7e3Ey3NzNzChtW5n4c8Bb7qB6XlJ\nobX+v8DyVbvfBDyUbTt7bxFa60e01n+6YZcE6jh7XxO01kZr/T4ApZRP6u3SOHtvOUqpHya15dkN\nu52drx23KKV+Uin1M0qpVbted3s78fLcDHHlx7WW7XNcOzbavAb0Zi9/xxahlHoz8Cmt9dM4e19T\nlFJvAP4c+HOt9aM4e28pSqmbgZu01n901SFn52vHB7TWHwB+FniXUupbuQH2duLluZkByhvClWyf\n49qx0eYVYEFrHd/A9LykUEq9BngN8OPZLmfva4jW+lNa6zcCe5VSb8PZe6t5M9BSSr2TtBr6lUqp\n/4iz8zVDa/1wtk6AB0nfJ9fd3k68PDcPAbuVUrksfA/wyRuYnm8GPklaXQfO3ltK5uJ9A/B2YEQp\ndTfO3tcEpdTNG1zqkFZp7MPZe0vRWv/3rF3R+4F/AB7WWv8qzs7XBKXUYaXUWzbsOgic5gbY203M\n+Dwopb4d+D5gFohcb6OtQyn1bcA/A94I/A/gl0h7Y3wAmCDtofFO10vgxZM1zv0s8Gi2qwT8BvAJ\nnL23nKx31y+S9u4KgJuAHwM6OHtvOUqp7wX+HWnPrt8APoWz85ajlNoBfJi0cXSFNG+/A+jhOtvb\niReHw+FwOBzbCldt5HA4HA6HY1vhxIvD4XA4HI5thRMvDofD4XA4thVOvDgcDofD4dhWOPHicDgc\nDodjW+HEi8Ph2DKUUueUUns2hN+mlPq5G5COjyml/sX1jtfhcFwf3HDJDofjWvI7pGNvOBwOx5bh\nxnlxOBxbglLq7aTznfwxsAj8AumAVr1a61crpd5DOlDbh4DbgEPAW4EfAF4JfFVr/SPZtfpIB72a\nA0aAv9da/9Ymcb6ZdBDJCdKB4N4LjJIOeDgJPA38MjCVXa8JdJNOuPrzSqnvz37zeJbmA8CXtNY/\ntaXGcTgcW4qrNnI4HFuC1vpDQBV4t9b67VrrSVKhsnr83cBXAKG1/m7gg8DvAf+VVLzcp5Q6mJ3+\nIeCzmYj4V8B/U0od2iTa9wAf0lq/i1SklLTWfwF8EfhdrfW/11qfAd4FzGitf1Jr/aPAm5RSr9Va\n/2F2bqy1fhtwP3C/Uuo7ttQ4DodjS3HVRg6H43rz+Wx9BjintV4AUEqdJfWanCQVEaFS6t7s3Alg\nD3Diqmv9MfCHSqnfBn5fa33sWeK8H5hRSv1mFq4DuzYc/xykk80ppf4BeC3pbNAOh+MbECdeHA7H\n9aadre2G7dXwRm/wL2utvwiQTY5qrr6Q1vrdSqnfAn4QeEAp9Q6t9e89S7z/S2v9B9n1Apzn2eHY\ntriH1+FwbCUtwFNK3aeUGn8R1/kr4PUbwv8H2HH1SUqpX9Van9Na/zzwftLqp43p2KeU+tZNrvdB\n4BUbwndn15PAq4C/fRFpdzgc1xjXYNfhcGwZSql3A0cBQTrL74dJBcXPkHpZfh54GPgvpA16Xwn8\nZPbzD2TH/nUW/nXSNjQSeEhr/dubxPcRoEjasHc38J+11ueUUm8Efir7/XsBDfxKdq0mcF5r/cHs\nGh/L9nnAXuBR12DX4fjGxokXh8PxTU0mXv5Oa/2xG5wUh8PxAnHVRg6H45sWpdQ/Jq0y+udKqVtv\ndHocDscLw3leHA6Hw+FwbCuc58XhcDgcDse2wokXh8PhcDgc2wonXhwOh8PhcGwrnHhxOBwOh8Ox\nrXDixeFwOBwOx7bCiReHw+FwOBzbiv8PAgWAeeogzckAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1092def98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "plot_paths()\n",
    "plt.savefig('../images/10_mcs/CIR_paths.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.9771,  0.9775,  0.9779,  0.9783,  0.9787,  0.9791,  0.9795,\n",
       "        0.9799,  0.9803,  0.9807,  0.9811,  0.9815,  0.9819,  0.9823,\n",
       "        0.9827,  0.9832,  0.9836,  0.984 ,  0.9845,  0.9849,  0.9853,\n",
       "        0.9858,  0.9862,  0.9867,  0.9871,  0.9876,  0.988 ,  0.9885,\n",
       "        0.9889,  0.9894,  0.9899,  0.9904,  0.9908,  0.9913,  0.9918,\n",
       "        0.9923,  0.9928,  0.9933,  0.9938,  0.9943,  0.9948,  0.9953,\n",
       "        0.9958,  0.9963,  0.9968,  0.9973,  0.9979,  0.9984,  0.9989,\n",
       "        0.9995,  1.    ])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "zcb_estimator(50).round(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111a77a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "graphical_comparison(50, 'exact')\n",
    "plt.savefig('../images/10_mcs/CIR_zcb_mcs_exact.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113670358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "graphical_comparison(50, 'Euler')\n",
    "plt.savefig('../images/10_mcs/CIR_zcb_mcs_euler.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97705077215883396"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "zcb_estimator(200, 'Euler')[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97701414271761378"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B([0.01, 0.1, 0.03, 0.2, 0., T])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "490 ms ± 10.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
     ]
    }
   ],
   "source": [
    "%timeit r = CIR_generate_paths(r0, kappa_r, theta_r, sigma_r, T, M, I, 'exact')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "143 ms ± 3.91 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
     ]
    }
   ],
   "source": [
    "%timeit r = CIR_generate_paths(r0, kappa_r, theta_r, sigma_r, T, M, I, 'Euler')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "531 ms ± 17.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
     ]
    }
   ],
   "source": [
    "M = 4 * M\n",
    "%timeit r = CIR_generate_paths(r0, kappa_r, theta_r, sigma_r, T, M, I, 'Euler')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Chapter 10: Monte Carlo Simulation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### European Options"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %run 10_mcs/H93_european_mcs.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "h5 = pd.HDFStore('10_mcs/mcs_european.h5', 'r')\n",
    "results = h5['results']\n",
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "results['index_disc'] = results['index_disc'].apply(lambda x: x[0]) \n",
    "results['var_disc'] = results['var_disc'].apply(lambda x: x[0]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 161280 entries, 0 to 161279\n",
      "Data columns (total 22 columns):\n",
      "MCS_est            161280 non-null float64\n",
      "PY1_acc            161280 non-null bool\n",
      "PY2_acc            161280 non-null bool\n",
      "PY_acc             161280 non-null bool\n",
      "SE                 161280 non-null float64\n",
      "anti_paths         161280 non-null bool\n",
      "error              161280 non-null float64\n",
      "index_disc         161280 non-null object\n",
      "maturity           161280 non-null float64\n",
      "moment_matching    161280 non-null bool\n",
      "otype              161280 non-null object\n",
      "panel              161280 non-null int64\n",
      "paths              161280 non-null int64\n",
      "rel_error          161280 non-null float64\n",
      "runs               161280 non-null int64\n",
      "steps              161280 non-null int64\n",
      "strike             161280 non-null int64\n",
      "timestamp          161280 non-null int64\n",
      "value              161280 non-null float64\n",
      "var_disc           161280 non-null object\n",
      "PY1                161280 non-null float64\n",
      "PY2                161280 non-null float64\n",
      "dtypes: bool(5), float64(8), int64(6), object(3)\n",
      "memory usage: 22.9+ MB\n"
     ]
    }
   ],
   "source": [
    "results.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cols = ['otype', 'runs', 'paths', 'index_disc', 'var_disc', \n",
    "        'moment_matching', 'anti_paths']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "var_disc_select = ['F', 'P', 'T', 'A']\n",
    "grouped = results[(results.steps == 50)\n",
    "                & (results.paths == 100000)\n",
    "                & (results.index_disc == 'L')\n",
    "                & (results.var_disc.isin(var_disc_select))].groupby(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "mse = lambda x: np.sum(x ** 2) / len(x)\n",
    "err = lambda x: sum(-x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tab = grouped.agg({'value': len, 'PY_acc': err, 'error': (np.mean, mse)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tmpl = r'%4s & %3d & %6d &  %s  &  %s  & %5s & %5s & %3d & %3d & %7.5f & %7.5f \\tn' "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "table = ''\n",
    "f = open('10_mcs/table_10_1.tex', 'w')\n",
    "for i in range(len(tab)):\n",
    "    dats = list(tab.iloc[i].name)\n",
    "    dats.extend(tab[['PY_acc', 'value', 'error']].iloc[i].values)\n",
    "    row = tmpl % tuple(dats) + '\\n'\n",
    "    table += row\n",
    "    f.write(row)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CALL &   5 & 100000 &  L  &  A  & False & False & 146 & 180 & 0.07670 & 3.74152 \\tn\n",
      "CALL &   5 & 100000 &  L  &  A  & False &  True & 146 & 180 & 0.07288 & 3.75574 \\tn\n",
      "CALL &   5 & 100000 &  L  &  A  &  True & False &   3 & 180 & 0.00633 & 0.00136 \\tn\n",
      "CALL &   5 & 100000 &  L  &  A  &  True &  True &   3 & 180 & 0.00468 & 0.00149 \\tn\n",
      "CALL &   5 & 100000 &  L  &  F  & False & False & 146 & 180 & 0.03556 & 3.63164 \\tn\n",
      "CALL &   5 & 100000 &  L  &  F  & False &  True & 148 & 180 & 0.03462 & 3.62426 \\tn\n",
      "CALL &   5 & 100000 &  L  &  F  &  True & False &   1 & 180 & -0.01659 & 0.00113 \\tn\n",
      "CALL &   5 & 100000 &  L  &  F  &  True &  True &   1 & 180 & -0.01299 & 0.00090 \\tn\n",
      "CALL &   5 & 100000 &  L  &  P  & False & False & 144 & 180 & 0.03942 & 3.68678 \\tn\n",
      "CALL &   5 & 100000 &  L  &  P  & False &  True & 145 & 180 & 0.04079 & 3.64441 \\tn\n",
      "CALL &   5 & 100000 &  L  &  P  &  True & False &   1 & 180 & -0.01474 & 0.00108 \\tn\n",
      "CALL &   5 & 100000 &  L  &  P  &  True &  True &   1 & 180 & -0.01128 & 0.00111 \\tn\n",
      "CALL &   5 & 100000 &  L  &  T  & False & False & 147 & 180 & 0.07196 & 3.72847 \\tn\n",
      "CALL &   5 & 100000 &  L  &  T  & False &  True & 145 & 180 & 0.07256 & 3.74803 \\tn\n",
      "CALL &   5 & 100000 &  L  &  T  &  True & False &   3 & 180 & 0.00340 & 0.00155 \\tn\n",
      "CALL &   5 & 100000 &  L  &  T  &  True &  True &   3 & 180 & 0.01147 & 0.00162 \\tn\n",
      " PUT &   5 & 100000 &  L  &  A  & False & False & 143 & 180 & 0.04343 & 0.93155 \\tn\n",
      " PUT &   5 & 100000 &  L  &  A  & False &  True & 141 & 180 & 0.04284 & 0.93065 \\tn\n",
      " PUT &   5 & 100000 &  L  &  A  &  True & False &  14 & 180 & 0.00445 & 0.00110 \\tn\n",
      " PUT &   5 & 100000 &  L  &  A  &  True &  True &  20 & 180 & 0.00657 & 0.00149 \\tn\n",
      " PUT &   5 & 100000 &  L  &  F  & False & False & 141 & 180 & 0.03198 & 0.94487 \\tn\n",
      " PUT &   5 & 100000 &  L  &  F  & False &  True & 142 & 180 & 0.03797 & 0.94874 \\tn\n",
      " PUT &   5 & 100000 &  L  &  F  &  True & False &   9 & 180 & -0.01349 & 0.00068 \\tn\n",
      " PUT &   5 & 100000 &  L  &  F  &  True &  True &  10 & 180 & -0.01379 & 0.00083 \\tn\n",
      " PUT &   5 & 100000 &  L  &  P  & False & False & 143 & 180 & 0.03593 & 0.96873 \\tn\n",
      " PUT &   5 & 100000 &  L  &  P  & False &  True & 141 & 180 & 0.03330 & 0.94941 \\tn\n",
      " PUT &   5 & 100000 &  L  &  P  &  True & False &   3 & 180 & -0.00881 & 0.00041 \\tn\n",
      " PUT &   5 & 100000 &  L  &  P  &  True &  True &   5 & 180 & -0.00987 & 0.00056 \\tn\n",
      " PUT &   5 & 100000 &  L  &  T  & False & False & 143 & 180 & 0.04830 & 0.92206 \\tn\n",
      " PUT &   5 & 100000 &  L  &  T  & False &  True & 142 & 180 & 0.04231 & 0.92051 \\tn\n",
      " PUT &   5 & 100000 &  L  &  T  &  True & False &  10 & 180 & 0.00687 & 0.00111 \\tn\n",
      " PUT &   5 & 100000 &  L  &  T  &  True &  True &  10 & 180 & 0.00445 & 0.00117 \\tn\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(table) # table 10.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "grouped = results[(results.steps == 50)\n",
    "                & (results.paths == 100000)\n",
    "                & (results.moment_matching == True)\n",
    "                & (results.anti_paths == True)].groupby(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tab = grouped.agg({'value': len, 'PY_acc': err, 'error': (np.mean, mse)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "table = ''\n",
    "f = open('10_mcs/table_10_2.tex', 'w')\n",
    "for i in range(len(tab)):\n",
    "    dats = list(tab.iloc[i].name)\n",
    "    dats.extend(tab[['PY_acc', 'value', 'error']].iloc[i].values)\n",
    "    row = tmpl % tuple(dats) + '\\n'\n",
    "    table += row\n",
    "    f.write(row)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CALL &   5 & 100000 &  L  &  A  &  True &  True &   3 & 180 & 0.00468 & 0.00149 \\tn\n",
      "CALL &   5 & 100000 &  L  &  F  &  True &  True &   1 & 180 & -0.01299 & 0.00090 \\tn\n",
      "CALL &   5 & 100000 &  L  &  H  &  True &  True &   4 & 180 & 0.01169 & 0.00175 \\tn\n",
      "CALL &   5 & 100000 &  L  &  P  &  True &  True &   1 & 180 & -0.01128 & 0.00111 \\tn\n",
      "CALL &   5 & 100000 &  L  &  R  &  True &  True &   5 & 180 & 0.01208 & 0.00253 \\tn\n",
      "CALL &   5 & 100000 &  L  &  S  &  True &  True &  13 & 180 & 0.02979 & 0.00659 \\tn\n",
      "CALL &   5 & 100000 &  L  &  T  &  True &  True &   3 & 180 & 0.01147 & 0.00162 \\tn\n",
      "CALL &   5 & 100000 &  N  &  A  &  True &  True &   1 & 180 & 0.00805 & 0.00101 \\tn\n",
      "CALL &   5 & 100000 &  N  &  F  &  True &  True &   2 & 180 & -0.01566 & 0.00104 \\tn\n",
      "CALL &   5 & 100000 &  N  &  H  &  True &  True &   4 & 180 & 0.00545 & 0.00226 \\tn\n",
      "CALL &   5 & 100000 &  N  &  P  &  True &  True &   4 & 180 & -0.01526 & 0.00120 \\tn\n",
      "CALL &   5 & 100000 &  N  &  R  &  True &  True &   6 & 180 & 0.01221 & 0.00279 \\tn\n",
      "CALL &   5 & 100000 &  N  &  S  &  True &  True &  11 & 180 & 0.03020 & 0.00549 \\tn\n",
      "CALL &   5 & 100000 &  N  &  T  &  True &  True &   3 & 180 & 0.00692 & 0.00174 \\tn\n",
      " PUT &   5 & 100000 &  L  &  A  &  True &  True &  20 & 180 & 0.00657 & 0.00149 \\tn\n",
      " PUT &   5 & 100000 &  L  &  F  &  True &  True &  10 & 180 & -0.01379 & 0.00083 \\tn\n",
      " PUT &   5 & 100000 &  L  &  H  &  True &  True &  14 & 180 & 0.00808 & 0.00157 \\tn\n",
      " PUT &   5 & 100000 &  L  &  P  &  True &  True &   5 & 180 & -0.00987 & 0.00056 \\tn\n",
      " PUT &   5 & 100000 &  L  &  R  &  True &  True &  18 & 180 & 0.01005 & 0.00207 \\tn\n",
      " PUT &   5 & 100000 &  L  &  S  &  True &  True &  29 & 180 & 0.02747 & 0.00592 \\tn\n",
      " PUT &   5 & 100000 &  L  &  T  &  True &  True &  10 & 180 & 0.00445 & 0.00117 \\tn\n",
      " PUT &   5 & 100000 &  N  &  A  &  True &  True &  16 & 180 & 0.00084 & 0.00123 \\tn\n",
      " PUT &   5 & 100000 &  N  &  F  &  True &  True &   9 & 180 & -0.01466 & 0.00075 \\tn\n",
      " PUT &   5 & 100000 &  N  &  H  &  True &  True &  13 & 180 & 0.00402 & 0.00176 \\tn\n",
      " PUT &   5 & 100000 &  N  &  P  &  True &  True &   7 & 180 & -0.01529 & 0.00070 \\tn\n",
      " PUT &   5 & 100000 &  N  &  R  &  True &  True &  17 & 180 & 0.00987 & 0.00217 \\tn\n",
      " PUT &   5 & 100000 &  N  &  S  &  True &  True &  30 & 180 & 0.02535 & 0.00556 \\tn\n",
      " PUT &   5 & 100000 &  N  &  T  &  True &  True &  11 & 180 & 0.00622 & 0.00106 \\tn\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(table)  # table 10.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nSVKD/j+Sj0LO8BnpAwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113654668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "results[results.paths == 100000].boxplot('error',\n",
    "            by=['otype', 'moment_matching'], figsize=(8, 5))\n",
    "plt.title('valuation error')\n",
    "plt.savefig('../images/10_mcs/box_mm.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10df07630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "results[results.moment_matching == True].boxplot(\n",
    "            'error', by=['paths'], figsize=(8, 5))\n",
    "plt.title('valuation error')\n",
    "plt.savefig('../images/10_mcs/box_paths.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAFXCAYAAABKl4x5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGy9JREFUeJzt3X+852Od//HHmBMajjXDGYqNVrxIVDdKszJhqBhpV6lu\nVIjbLlMtIVmp8MUOWfnxJdX6FeuL2EoU+dE0hfxIpW3zUruLti1z0mgmkx+j8/3jfZ18HOdXPp/z\nw3Ue93/mvD/v6/O+rvc5t888P+/rfb2va1pfXx+SJKlOq0x0AyRJ0tgx6CVJqphBL0lSxQx6SZIq\nZtBLklQxg16SpIp1TXQDpIkSEbsCnwZeDSwGpgPrA7cBf5eZj49RvasC3wTeBLw8Mx8Yi3peCCJi\nOnAzQ/wuIuL1wOeBtTNz43FvoFQBr+g1ZWXmjcBhZXNeZr4ReAOwB3DIGNb7ZGbu+Oe8JyL6ImLj\nsWnRxMnMp4f7XWTmnTzzNxozEfFARAzZDumFzKCXWmTmb4CfAa+Y6LZIUifYdS+1iIgAXgmc0vLa\n64DTgGlAH3BkZt4VEf8MLAAeArYBrgJeBfwjMAfYBzgf2AJ4CfDvwN9n5opB6p0GHAm8A1gJ3A8c\nmpnLI+IbpdjlEfE4sG9m/nLA+9eg6eJ+JfC/wH3AgcBlwPXAqcDDwJ3ADsB6mfnyYc7tcOAo4LzM\nPC4ijgcOBQ7LzIsi4tyRzi8i3l9+P08AvwQOzsxlZd8BwBHAr4HLR/zDNO85FtgFmAV8NDNviIib\ngHnAdZm5R0S8j+Zvd1tmvnPA+9cDLgJWB14EfC0zT4mIC2lu2ZwREY8CR2Tm94dqf0T8G7B7+Z2+\nHtgAuKn87p6OiL8u+56kuZg6LTOvHc05SmPBK3qpcXNE3ArcTROYXwaIiL8AvgF8KjPnAscC34iI\ntTPzCOA4YBnwB+AnwO6ZeUlmLgB+CGwHvJ3mi8C65f2DeS+wP7BzuYXwR+AMgMzcrZR5T2buODDk\ni0/RBOA2wN8Cfw38MDMXZOY1wELgdcD5mfkG4KoRzu10mi8IlDZ8qpxP//aw5xcR2wOnA2/LzDfR\nBOXpZd+WwDll3y40oTuSDYB7Sjf/waX96wC7AY8AJ5d2XQJ8H9h7kGMcASzKzJ2AtwBvK+85gOYL\nx2Hl9/v94dqfmXuV8puV+l8H7EzzxQqav9sRmbkzzZejZ33hkMabQS815mXm9sB6NFfl/1Je3wNY\nlpmLADLzO8BSYM+y/7Ty72Wl3L0Djnt1Zj6VmX8sZd4zRP3vB65oudq/EHhfGaw2GnsDl2XmHzPz\nSeBLg5TJzLyv/PDRUZzbaAx1fvvTXDH3lu3LgH1Lz8U7gdsz87/LvitGUc+KzPx6aedtwBJgfmY+\nRdMj8H6AiHgtcG9mDraIx2+B3SJiy8x8DHjzMPUN1/5+V2RmXxm0eVXLuf+W5m+3Xmb+iKZXQJow\nBr3UogTtecABpTt8Q6B3QLHe8jqZ+TRwOPAu4N8GOeTSlp8foeniHszAenpprnTXG2XTXwL8pmX7\nt4OU+d0IdfbXu+Eo64Shz29DYOeIWBQRi4CzaW4drDOwrZk5WFuHq2dgXV8E3hURqwHvAy4Z4hif\nBq4GroiIHwLzh6lvuPYP1qbW9uwDrADuiYjraa78pQlj0EvP9TTNPevpwC+AngH7e4D/adneh6YH\n4LyIGPiZmtXy87rAr4aoc2A9PcBTNOEyGr8a8P51hio4TJ399faf25PAai371h7kGEOd3y+Aa0tX\n+I7ldsS2ZbDjs9pauuBHMnPA9p/qKiPzH6a5ZbFZf6/FIGZn5tmZ+Sqa8RCXRMQmQ5Qdrv39hjr3\n1TLzKGAjmsc2vzqK85PGjEEvtShB/S7g+2Xg2LVAd0TMLfu3pwmda8r27jQD5xYAawD/MOCQe0bE\ni8px92XogWcX0VyVvrhs7wdcUnoMAH4PzIiI90bEYPd8r6TpWl6lPKf/N6M43WHPDfhvmtsYRMQr\ngE0HOcZQ53cRMD8iZpb3B/C1su8qYE5E/FXZ3mcUbe2OiPnlWG+k+aJwXcv+S2juoX9zmGP8U0S8\npvx8B80Xmf6u+OU0v9+dIuLQEdrf7x0RMa38zfZuOferImJGZq4EbqX5wihNGINeU1aZMOeMsnlz\n6aL9Hk1gvxughP1bgRMiYjHNoK/dMvPRiPgoTbfxy2muoNcATo6IM1qquZWmS/8emm7xEyNi1VIX\nNCPpN8jMy2jC5ZaI+C7NEzGtz4+fQxMkBwPfHeR0TqDpDr+HJkgX04yiJyJ2Bo4GXhMRfwrC4c6t\nFLkAWDcivgf8Hc1AxaP7A3eo8yvHvo1nBvfdApxJ8+WFzPwJzRejr5V9/UF4eUS8rPWkyoQ5Z9A8\n2bBDaedngb0z85GWopfS/A2GG8F/JfCZiLgZWAQcm5k/L/s+RzPe4p+Am4Zrf4sfA18H7qKZ9Of8\n8vqXgW9GxLdoRt+/f5g2SWNuWl/fYGNWJLWrhPlFmXnRONS1JvBkGYhH+RKybWa+ewzrXMQ4nd9I\nImJt4IIyIn486nsA2L9/IKM0mfkcvVSH99BcGX+uDErbm2ZQYdXKrZM7eXbXuaQWdt1LY6BMKPMa\nntvVPVbuoblHv4imO/0mmlsBY2ICzm8om9DcytiNwZ966LgyYU7/BDvbjEedUjvsupdeYFpmpTts\nLLrNI2Ifmol7Dur0sSWNP6/opReYllnp2hYRG0fEwG/7VzAOC8lIGh/eo5f0LOWRvt9PdDskdYZB\nL02Q8rz73TTPp1+emQeUxWSOAb5CM1nN+jSLsPw78OHybPbA43wT2JXmMb+HgW8B22XmtLJ/S5rH\nvFYF1gQuzMzPl7nuLy9lFpXDHQpcTMv672UxmHNpnl1fFfhsZl5cHoW7kma++/1pZqX7S+CA8nja\nYOe8Cc3jcavR9Ch+LDNvi4g9GWThHZqpgBfQTOm7Ds2c+rdn5v4ti848SfNo4SGZ+XBEfHKo9wzz\n55CqZde9NEHKo3A7lc1PlH/PAr5Ds3LcDZm5a2buALyY5z7H3X+cN7f8/AeeO5/+msAJmbkrMBf4\nSERsmpm/6y/bMgPcj3hut/2/Aj8uC9/sASyMiB0y86GWuv5QFqg5n2aBneeIiC6aSXouLwvFfBC4\nJiK6h1p4JzNPoFlcZ0fgIJrV4n4eETvQPPf+ttKue2jmo2eo9wzWJmkqMOilCVQmfbmB5moYmgls\nrqeZR32jiPhuudrekebK9Pn4GXBgRNwG3EgzJ/trR/PGiNiAZhnYC0p7f0MT1gcMKNq/0t29ND0L\ng9mOZpT8JeVY99KsCrdHS5mBC+/0uykzV2Tm7zLzRJpJaK5tWXTmQpq56V82zHukKcmglybeF3lm\n9rR30QyG2w/4e2DPsjTrRcCM53n804HZwA7lWD/8M47Vv8DNwAV3nrXwTZllD+Bxmu79oY7VB9zY\nsljMasBftJQZuPDOUK8PtghQa3uHO5Y0pXiPXpp41wJfiIg3A5TpdV8P3NmysttIa7Y/xTML0Axc\nfOb1wLkt8+aPZv33fr8o//bQTEPb//P/DF58xGM9Vb5sAFBWCPzj8zzWwEWAeJ7tkqrmFb00wcq9\n+itoup/715H/OfDqiFit3NueN8Jh/rQADbD7gH0/p+k2JyJeAmzdsm95eX1GRBwdEW8Y0Lb/penu\n37+UW4dmedcLR3t+Le4AHoqIvcqxumgGHT6fZVwvAnaPiHXL9n7ALWXcgKQWTpgjTQIRsR3N6mgv\nzcyV5Ur3UmBzmhH3XcAcmpHpr6CZMOfXwBGZeV1EvKPsS5oegnOAb9N8Qdi0HOsp4KfAtjTd6wsy\n85aI+FcgaMYFHE5zD31z4GuZuXdEzKYZdT+bZ4+6n0WzqMt2NCvefbj8uzlwZWY+ZzGXMur+HJrB\nhavQPAFwQVl451yapwzu7B9gWJ5COIrmlsCVZfnX/mO9F/gQzx11P+R7pKnIoJckqWJ23UuSVDGD\nXpKkinVk1H1E7ALsBSwB+jLz+AH7p9HcvwPYmGbWrQ90om5JkjS0toM+ImbQrHu9ZWY+ERFXR8S8\nzLy5pdh7gUcz84vlPVsPdixJktRZnbiinwM8mJlPlO1baR6/aQ36fYHrI+IfaEbV/ksH6pUkSSPo\nRNDPpjyLWywrr7XaCFgrM0+IiM1oQn+Llgk8nmPlyqf7urqmd6B5kiRVb9pQOzoR9EuA7pbttcpr\nrZbRTJZBZt4fEWvRrHL1wFAHXbp0RQeapsmip6eb3t7lIxeUNG78XNajp6d7yH2dGHV/O83iG/3T\nb24PXBcRs0qgQ9ON/1cA5bXpNJN9SJKkMdR20GfmCuAQ4KyIOBG4twzEO5pmTWiAU4DXRMQxwGeA\n/TLz8XbrliRJw5u0M+P19i6fnA3T82IXoTT5+LmsR09P95D36J0wR5Kkihn0kiRVzKCXJKliBr0k\nSRUz6CVJqphBL0lSxQx6SZIqZtBLklQxg16SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUM\nekmSKmbQS5JUMYNekqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLFDHpJkipm0EuSVDGDXpKk\nihn0kiRVzKCXJKliBr0kSRUz6CVJqphBL0lSxQx6SZIqZtBLklQxg16SpIoZ9JIkVcyglySpYga9\nJEkVM+glSaqYQS9JUsUMekmSKmbQS5JUMYNekqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLF\nDHpJkipm0EuSVDGDXpKkihn0kiRVrKsTB4mIXYC9gCVAX2YeP0S5fYFLge7M/H0n6pYkSUNr+4o+\nImYA5wEfyczjgK0jYt4g5bYAXtlufZIkafQ60XU/B3gwM58o27cC81sLlC8DRwGDXulLkqSx0Ymg\nnw0sb9leVl5rdRJwQmY+2YH6JEnSKHXiHv0SoLtle63yGgAR8ZfATODdEdH/8uER8fXMvHuog86c\nOYOurukdaJ4mi56e7pELSRpXfi7rN62vr6+tA5Ru+XuBLTPziYi4GjgX+AGwMjOXDSjfxygG4/X2\nLm+vYZpUenq66e1dPnJBSePGz2U9enq6pw21r+2u+8xcARwCnBURJwL3ZubNwNHAgv5yEdETEceW\nzaMiYoN265YkScNr+4p+rHhFXxevHKTJx89lPcb0il6SJE1eBr0kSRUz6CVJqphBL0lSxQx6SZIq\nZtBLklQxg16SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmSKmbQS5JUMYNekqSKGfSS\nJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLFDHpJkipm0EuSVDGDXpKkihn0kiRVzKCXJKliBr0kSRUz\n6CVJqphBL0lSxQx6SZIqZtBLklQxg16SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmS\nKmbQS5JUMYNekqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLFDHpJkipm0EuSVDGDXpKkihn0\nkiRVzKCXJKliBr0kSRUz6CVJqlhXJw4SEbsAewFLgL7MPH7A/o8B6wO/ArYFPpmZ93WibkmSNLS2\nr+gjYgZwHvCRzDwO2Doi5g0otiZweGaeClwNfLrdeiVJ0sg6cUU/B3gwM58o27cC84Gb+wtk5ida\nyq8C/L4D9UqSpBF0IuhnA8tbtpeV154jIlYF9gM+2IF6JUnSCDoR9EuA7pbttcprz1JC/rPAxzPz\nP0c66MyZM+jqmt6B5mmy6OnpHrmQpHHl57J+nQj624GNImK10n2/PXBuRMwCVmbmsnIf/xzgtMz8\nSUS8IzOvHu6gS5eu6EDTNFn09HTT27t85IKSxo2fy3oM94Wt7aDPzBURcQhwVkT0Avdm5s0RcSrw\nW2AhcCnwKuDlEQGwBs2gPEmSNIam9fX1TXQbBtXbu3xyNkzPi1cO0uTj57IePT3d04ba54Q5kiRV\nzKCXJKliBr0kSRUz6CVJqphBL0lSxQx6SZIqZtBLklQxg16SpIoZ9JIkVcyglySpYga9JEkVM+gl\nSaqYQS9JUsUMekmSKmbQS5JUMYNekqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLFDHpJkipm\n0EuSVDGDXpKkihn0kiRVrGuiG6AXvrlzt+O++37a1jE233wLFi++o0MtkiT1M+jVttEE9AcW3sIF\nR+88Dq2RJLWy616SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmSKmbQS5JUMYNekqSK\nGfSSJFXMoJckqWLOdS9JFerEYlPgglM1MOglqUIuNqV+dt1LklQxg16SpIoZ9JIkVcyglySpYga9\nJEkVM+glSaqYQS9JUsUMekmSKuaEORrWh89YzGOPr+zIsT6w8Ja23r/G6l2cfdjcjrRFkqYKg17D\neuzxlR2ZOaunp5ve3uVtHaPdLwqSNBXZdS9JUsU6ckUfEbsAewFLgL7MPH7A/tWB04BfApsCCzPz\n/k7ULUlTUaduq3lLrX5tB31EzADOA7bMzCci4uqImJeZN7cUOwx4KDNPjYitgPOBHdqtW5Kmqk7c\nVvOW2tTQia77OcCDmflE2b4VmD+gzHzgdoDM/DHw6ohYqwN1S5KkYXSi63420PqVcFl5bTRllg11\n0JkzZ9DVNb0DzVM7DnzoGu4/6IttH6cT92kOXHVtenre3oEjSS98nfhs+rmcGjoR9EuA7pbttcpr\nf26ZZ1m6dEUHmqZ2nf+yPSfNqPuFC29h+zaPIdWiE59NP5f16OnpHnJfJ7rubwc2iojVyvb2wHUR\nMaule/46mi5+yj36H2XmkFfzkiSpM9oO+sxcARwCnBURJwL3loF4RwMLSrEzab4MHAscARzYbr2S\nJGlkHXm8LjNvBG4c8NpRLT//AfhgJ+qSJEmj58x4kvQCNRkebVtjdWNksvMvJEkvQJ0YJPuBhbd0\n5Dia3JwCV5Kkihn0kiRVzKCXJKli3qPXiCbDgB9w0I8kPR/+z6lhdWqgjoN+JGli2HUvSVLFDHpJ\nkipm0EuSVDGDXpKkihn0kiRVzKCXJKliPl4nSRWaO3c77rvvpyOWm3368Ps333wLFi++o0Ot0kQw\n6CWpQqMJ556ebnp7l49DazSR7LqXJKliBr0kSRUz6CVJqphBL0lSxQx6SZIqZtBLklQxg16SpIoZ\n9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmSKubqdWpbJ5bDdClMSRobBr3a5nKYkjR52XUv\nSVLFDHpJkipm0EuSVDGDXpKkihn0kiRVzKCXJKliBr0kSRUz6CVJqphBL0lSxQx6SZIqZtBLklQx\ng16SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmSKmbQS5JUMYNekqSKGfSSJFWsq503\nR8QsYCHwX8CmwDGZ+fCAMq8DDgN+AARwZ2Z+oZ16JUnS6LR7RX8ycFNmLgS+Apw2SJmXAGdm5mnA\nAuDUiFi3zXolSdIotHVFD8wHTio/3wpcPLBAZl4z4KWVwFNt1itJkkZhxKCPiBuA9QbZ9UlgNrC8\nbC8DZkZEV2auHOJwHwJOzszfjVTvzJkz6OqaPlIxvYD09HRPdBMkDeDnsn4jBn1mvmWofRGxBOgG\nHgXWApYOFfIRsQ+wRmaeOJqGLV26YjTF9ALR09NNb+/ykQtKGjd+Lusx3Be2du/RXwfMKT9vX7aJ\niFUi4mX9hSLiIGB2Zp4YEVtFxGZt1itJkkah3aA/Btg1Io4F9gKOLK9vzTOh/3bgn4G/iYhFwGXA\nS9usV5IkjcK0vr6+iW7DoHp7l0/Ohul5sYtQmnz8XNajp6d72lD7nDBHkqSKGfSSJFXMoJckqWIG\nvSRJFTPoJUmqmEEvSVLFDHpJkipm0EuSVDGDXpKkihn0kiRVzKCXJKliBr0kSRUz6CVJqphBL0lS\nxQx6SZIqZtBLklQxg16SpIoZ9JIkVcyglySpYga9JEkVM+glSaqYQS9JUsUMekmSKmbQS5JUMYNe\nkqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmEEvSVLFpvX19U10GyRJ0hjxil6SpIoZ9JIkVcyglySp\nYga9JEkVM+glSaqYQS9JUsW6JroBqktEbAKcCNwDbAg8kpknRMRxwI4tRU/KzBvHv4XS1BQR3wMe\nL5tPZ+a8iJgFLAT+C9gUOCYzH56oNmpsGPTqtFnA5Zn5VYCI+I+IuA4gM3ecyIZJU9z1mXncgNdO\nBm7KzCsj4m3AacD7xr1lGlMGvToqM+8a8NIqwGMAEfFx4AlgOnB2Zq4Y5+ZJU9lWEfEx4MXAXZl5\nHTAfOKnsvxW4eKIap7HjPXqNmYj4W+CGzLwP+BJwRmaeBiwHzp7QxklTzymZeQrwf4BjImIuMJvm\n8wiwDJgZEV4AVsag15iIiJ2AnYCPAGTmTzLzsbL7FmDniWqbNBVl5p3l36eB79B8PpcA3aXIWsDS\nzFw5MS3UWDHo1XERMR94C3AosH5EzImIT7cU2RT4zwlpnDQFRcTmEXFgy0v9n8HrgDnlte3Ltirj\nojbqqIjYBvg2cHd5aQ3gHCCAGTRXEFsBn8zM+yekkdIUExEvBf4v8AOaK/cXAYcDawOnAA8CmwBH\nO+q+Pga9JEkVs+tekqSKGfSSJFXMoJckqWIGvSRJFTPoJUmqmDMgSVNERPQBnwO+nJk3DFNuEXBc\nZi4agzZsCxwE7AtslZkPdLoOSc9m0EtTSGYePMH13w3cHRFvnch2SFOJQS9NURFxMLAd8DCwOfBh\n4E00s6YdGhHvBI6lucV3CvAbYH1gcWZeWN7/CeDrNIsVvQq4OjPPjogZwOeBX9NMlLQiM48cz/OT\n1PAevTR1nQp8LDOPBi4FVs/MS4GfAWdm5ocy81HgTODbmfmPNN3un4iIzTLzvFL2V5n5IWB34OMR\nsRXwVmBWZh6ZmQuAR8b/9CSBV/TSVHY1sDgiLgb+3zD3y3cDVo2IN5btB4GNgf4pjG8FyMwVEXE3\nzWIpXwFOj4ivAlcAnxmTM5A0Iq/opSkqMw8A9gLWpLlvPneY4qdn5sHlHv9bgW+NcOyHaG4BfAF4\nN3CXy59KE8Ogl6aoiDgjM/8jMz8OXAK8tux6HJgeEduUbvjrgTe3vPUy4KUt23PK8WYA2wLfiog9\ngLmZeW1mvr2UX3Nsz0jSYPyGLU1dG0XEecAKmkF2J5TXvwR8FHgKOBg4DDg7Is6huTj4amY+2HKc\nNSLi8zQrFJ6UmT8uoX9cROxOs0LawnK/X9I4c/U6aYqIiL7MnNbhYy7ieTxzHxEPADv6HL009uy6\nl6aOOyLijIiY14mDRcQCYDPg8IjYcJTveW1EnEEzoO+JTrRD0vC8opckqWJe0UuSVDGDXpKkihn0\nkiRVzKCXJKliBr0kSRUz6CVJqtj/B18aF3QmGMPUAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x114bae630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "results[results.moment_matching == True].boxplot(\n",
    "        'error', by=['steps'], figsize=(8, 5))\n",
    "plt.title('valuation error')\n",
    "plt.savefig('../images/10_mcs/box_steps.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### American Options"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %run 10_mcs/SVSI_american_speed.py\n",
    "# just to measure the valuation time per single valuation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# sum(results['PY_acc'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# np.mean(results['error'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# np.mean(results['rel_error'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %run 10_mcs/SVSI_american_mcs_10_3.py\n",
    "# takes about 15 mins"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "h5 = pd.HDFStore('10_mcs/mcs_american_10_3_lam_1.h5', 'r')\n",
    "results = h5['results']\n",
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 5040 entries, 0 to 5039\n",
      "Data columns (total 24 columns):\n",
      "LSM_convar         5040 non-null float64\n",
      "LSM_pure           5040 non-null float64\n",
      "MCS_euro           5040 non-null float64\n",
      "PY1                5040 non-null float64\n",
      "PY1_acc            5040 non-null bool\n",
      "PY2                5040 non-null float64\n",
      "PY2_acc            5040 non-null bool\n",
      "PY_acc             5040 non-null bool\n",
      "SE                 5040 non-null float64\n",
      "V0_euro            5040 non-null float64\n",
      "anti_paths         5040 non-null bool\n",
      "benchmark          5040 non-null float64\n",
      "control_variate    5040 non-null bool\n",
      "error              5040 non-null float64\n",
      "maturity           5040 non-null float64\n",
      "moment_matching    5040 non-null bool\n",
      "panel              5040 non-null int64\n",
      "paths              5040 non-null int64\n",
      "rel_error          5040 non-null float64\n",
      "runs               5040 non-null int64\n",
      "steps              5040 non-null int64\n",
      "strike             5040 non-null float64\n",
      "timestamp          5040 non-null int64\n",
      "var_disc           5040 non-null object\n",
      "dtypes: bool(6), float64(12), int64(5), object(1)\n",
      "memory usage: 777.7+ KB\n"
     ]
    }
   ],
   "source": [
    "results.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LSM_convar                 0.000219883\n",
       "LSM_pure                   0.000306779\n",
       "MCS_euro                   0.000235761\n",
       "PY1                              0.025\n",
       "PY1_acc                           True\n",
       "PY2                              0.015\n",
       "PY2_acc                          False\n",
       "PY_acc                            True\n",
       "SE                         4.21629e-05\n",
       "V0_euro                    0.000148865\n",
       "anti_paths                        True\n",
       "benchmark                       0.0001\n",
       "control_variate                   True\n",
       "error                      0.000119883\n",
       "maturity                     0.0833333\n",
       "moment_matching                   True\n",
       "panel                                0\n",
       "paths                            25000\n",
       "rel_error                      1.19883\n",
       "runs                                 5\n",
       "steps                               20\n",
       "strike                              90\n",
       "timestamp          1418551858903142000\n",
       "var_disc               Full Truncation\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "results['var_disc'] = results['var_disc'].apply(lambda x: x[0]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cols = ['steps', 'paths', 'var_disc', 'control_variate', \n",
    "        'moment_matching', 'anti_paths']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "grouped = results[(results.control_variate == True)\n",
    "                  & (results.moment_matching == True)\n",
    "                  & (results.anti_paths == True)].groupby(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tab = grouped.agg({'benchmark': len, 'PY_acc': err, 'error': (np.mean, mse)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tmpl = r'%d & %3d & %6d &  %s  & %5s & %5s & %5s & %3d & %3d & %7.5f & %7.5f \\tn' "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "table = ''\n",
    "f = open('10_mcs/table_10_3.tex', 'w')\n",
    "for i in range(len(tab)):\n",
    "    dats = list(tab.iloc[i].name)\n",
    "    dats.extend(tab[['PY_acc', 'benchmark', 'error']].iloc[i].values)\n",
    "    dats.insert(0, 5)\n",
    "    row = tmpl % tuple(dats) + '\\n'\n",
    "    table += row\n",
    "    f.write(row)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5 &  20 &  25000 &  A  &  True &  True &  True &   1 & 180 & -0.00117 & 0.00064 \\tn\n",
      "5 &  20 &  25000 &  F  &  True &  True &  True &   1 & 180 & -0.00105 & 0.00042 \\tn\n",
      "5 &  20 &  25000 &  H  &  True &  True &  True &   5 & 180 & 0.00043 & 0.00046 \\tn\n",
      "5 &  20 &  25000 &  P  &  True &  True &  True &   4 & 180 & -0.00379 & 0.00047 \\tn\n",
      "5 &  20 &  25000 &  R  &  True &  True &  True &   5 & 180 & -0.00187 & 0.00058 \\tn\n",
      "5 &  20 &  25000 &  S  &  True &  True &  True &   3 & 180 & -0.00290 & 0.00044 \\tn\n",
      "5 &  20 &  25000 &  T  &  True &  True &  True &   2 & 180 & 0.00072 & 0.00062 \\tn\n",
      "5 &  20 &  35000 &  A  &  True &  True &  True &   1 & 180 & -0.00836 & 0.00050 \\tn\n",
      "5 &  20 &  35000 &  F  &  True &  True &  True &   1 & 180 & -0.00289 & 0.00043 \\tn\n",
      "5 &  20 &  35000 &  H  &  True &  True &  True &   5 & 180 & -0.00205 & 0.00057 \\tn\n",
      "5 &  20 &  35000 &  P  &  True &  True &  True &   4 & 180 & -0.00328 & 0.00039 \\tn\n",
      "5 &  20 &  35000 &  R  &  True &  True &  True &   4 & 180 & -0.00543 & 0.00051 \\tn\n",
      "5 &  20 &  35000 &  S  &  True &  True &  True &   2 & 180 & -0.00408 & 0.00044 \\tn\n",
      "5 &  20 &  35000 &  T  &  True &  True &  True &   2 & 180 & -0.00283 & 0.00035 \\tn\n",
      "5 &  25 &  25000 &  A  &  True &  True &  True &   2 & 180 & -0.00171 & 0.00045 \\tn\n",
      "5 &  25 &  25000 &  F  &  True &  True &  True &   1 & 180 & 0.00126 & 0.00039 \\tn\n",
      "5 &  25 &  25000 &  H  &  True &  True &  True &   2 & 180 & -0.00177 & 0.00043 \\tn\n",
      "5 &  25 &  25000 &  P  &  True &  True &  True &   1 & 180 & -0.00083 & 0.00037 \\tn\n",
      "5 &  25 &  25000 &  R  &  True &  True &  True &   2 & 180 & -0.00016 & 0.00059 \\tn\n",
      "5 &  25 &  25000 &  S  &  True &  True &  True &   4 & 180 & 0.00044 & 0.00050 \\tn\n",
      "5 &  25 &  25000 &  T  &  True &  True &  True &   3 & 180 & -0.00173 & 0.00054 \\tn\n",
      "5 &  25 &  35000 &  A  &  True &  True &  True &   2 & 180 & -0.00162 & 0.00043 \\tn\n",
      "5 &  25 &  35000 &  F  &  True &  True &  True &   1 & 180 & -0.00135 & 0.00045 \\tn\n",
      "5 &  25 &  35000 &  H  &  True &  True &  True &   2 & 180 & -0.00166 & 0.00041 \\tn\n",
      "5 &  25 &  35000 &  P  &  True &  True &  True &   1 & 180 & -0.00199 & 0.00036 \\tn\n",
      "5 &  25 &  35000 &  R  &  True &  True &  True &   0 & 180 & -0.00436 & 0.00028 \\tn\n",
      "5 &  25 &  35000 &  S  &  True &  True &  True &   5 & 180 & -0.00429 & 0.00048 \\tn\n",
      "5 &  25 &  35000 &  T  &  True &  True &  True &   1 & 180 & -0.00144 & 0.00045 \\tn\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(table)  # table 10.3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %run 10_mcs/SVSI_american_mcs_10_4.py\n",
    "# takes about 20 mins"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "h5 = pd.HDFStore('10_mcs/mcs_american_10_4_lam_1.h5', 'r')\n",
    "results = h5['results']\n",
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "results['var_disc'] = results['var_disc'].apply(lambda x: x[0]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LSM_convar                 0.000356255\n",
       "LSM_pure                   0.000356255\n",
       "MCS_euro                   0.000282973\n",
       "PY1                              0.025\n",
       "PY1_acc                           True\n",
       "PY2                              0.015\n",
       "PY2_acc                          False\n",
       "PY_acc                            True\n",
       "SE                         0.000160474\n",
       "V0_euro                    0.000148865\n",
       "anti_paths                       False\n",
       "benchmark                       0.0001\n",
       "control_variate                  False\n",
       "error                      0.000256255\n",
       "maturity                     0.0833333\n",
       "moment_matching                  False\n",
       "panel                                0\n",
       "paths                            35000\n",
       "rel_error                      2.56255\n",
       "runs                                 5\n",
       "steps                               20\n",
       "strike                              90\n",
       "timestamp          1418553430517517000\n",
       "var_disc                             F\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "var_disc_select = ['F', 'P', 'T', 'A']\n",
    "grouped = results[(results.paths == 35000)\n",
    "                  & (results.var_disc.isin(var_disc_select))].groupby(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tab = grouped.agg({'benchmark': len, 'PY_acc': err, 'error': (np.mean, mse)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "table = ''\n",
    "f = open('10_mcs/table_10_4.tex', 'w')\n",
    "for i in range(len(tab)):\n",
    "    dats = list(tab.iloc[i].name)\n",
    "    dats.extend(tab[['PY_acc', 'benchmark', 'error']].iloc[i].values)\n",
    "    dats.insert(0, 5)\n",
    "    row = tmpl % tuple(dats) + '\\n'\n",
    "    table += row\n",
    "    f.write(row)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5 &  20 &  35000 &  A  & False & False & False &  54 & 180 & -0.01504 & 0.00412 \\tn\n",
      "5 &  20 &  35000 &  A  & False & False &  True &  42 & 180 & -0.01279 & 0.00365 \\tn\n",
      "5 &  20 &  35000 &  A  & False &  True & False &  43 & 180 & -0.01126 & 0.00368 \\tn\n",
      "5 &  20 &  35000 &  A  & False &  True &  True &  42 & 180 & -0.01366 & 0.00351 \\tn\n",
      "5 &  20 &  35000 &  A  &  True & False & False &   0 & 180 & -0.00319 & 0.00041 \\tn\n",
      "5 &  20 &  35000 &  A  &  True & False &  True &   2 & 180 & -0.00594 & 0.00046 \\tn\n",
      "5 &  20 &  35000 &  A  &  True &  True & False &   1 & 180 & -0.00364 & 0.00037 \\tn\n",
      "5 &  20 &  35000 &  A  &  True &  True &  True &   0 & 180 & -0.00499 & 0.00045 \\tn\n",
      "5 &  20 &  35000 &  F  & False & False & False &  44 & 180 & -0.00894 & 0.00394 \\tn\n",
      "5 &  20 &  35000 &  F  & False & False &  True &  43 & 180 & -0.01226 & 0.00379 \\tn\n",
      "5 &  20 &  35000 &  F  & False &  True & False &  42 & 180 & -0.01283 & 0.00374 \\tn\n",
      "5 &  20 &  35000 &  F  & False &  True &  True &  46 & 180 & -0.01179 & 0.00422 \\tn\n",
      "5 &  20 &  35000 &  F  &  True & False & False &   4 & 180 & -0.00525 & 0.00059 \\tn\n",
      "5 &  20 &  35000 &  F  &  True & False &  True &   3 & 180 & -0.00366 & 0.00038 \\tn\n",
      "5 &  20 &  35000 &  F  &  True &  True & False &   2 & 180 & -0.00416 & 0.00046 \\tn\n",
      "5 &  20 &  35000 &  F  &  True &  True &  True &   2 & 180 & -0.00618 & 0.00042 \\tn\n",
      "5 &  20 &  35000 &  P  & False & False & False &  45 & 180 & -0.01272 & 0.00432 \\tn\n",
      "5 &  20 &  35000 &  P  & False & False &  True &  44 & 180 & -0.01313 & 0.00407 \\tn\n",
      "5 &  20 &  35000 &  P  & False &  True & False &  42 & 180 & -0.01241 & 0.00371 \\tn\n",
      "5 &  20 &  35000 &  P  & False &  True &  True &  41 & 180 & -0.01339 & 0.00385 \\tn\n",
      "5 &  20 &  35000 &  P  &  True & False & False &   3 & 180 & -0.00337 & 0.00046 \\tn\n",
      "5 &  20 &  35000 &  P  &  True & False &  True &   4 & 180 & -0.00540 & 0.00047 \\tn\n",
      "5 &  20 &  35000 &  P  &  True &  True & False &   1 & 180 & -0.00322 & 0.00036 \\tn\n",
      "5 &  20 &  35000 &  P  &  True &  True &  True &   3 & 180 & -0.00154 & 0.00045 \\tn\n",
      "5 &  20 &  35000 &  T  & False & False & False &  53 & 180 & -0.01329 & 0.00431 \\tn\n",
      "5 &  20 &  35000 &  T  & False & False &  True &  40 & 180 & -0.01140 & 0.00374 \\tn\n",
      "5 &  20 &  35000 &  T  & False &  True & False &  42 & 180 & -0.01210 & 0.00400 \\tn\n",
      "5 &  20 &  35000 &  T  & False &  True &  True &  42 & 180 & -0.01345 & 0.00367 \\tn\n",
      "5 &  20 &  35000 &  T  &  True & False & False &   1 & 180 & -0.00513 & 0.00050 \\tn\n",
      "5 &  20 &  35000 &  T  &  True & False &  True &   1 & 180 & -0.00530 & 0.00042 \\tn\n",
      "5 &  20 &  35000 &  T  &  True &  True & False &   3 & 180 & -0.00479 & 0.00042 \\tn\n",
      "5 &  20 &  35000 &  T  &  True &  True &  True &   2 & 180 & -0.00446 & 0.00039 \\tn\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(table) # table 10.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %run 10_mcs/SVSI_american_mcs_10_5.py\n",
    "# takes about 60 mins"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "h5 = pd.HDFStore('10_mcs/mcs_american_10_5_lam_1.h5', 'r')\n",
    "results = h5['results']\n",
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "results['var_disc'] = results['var_disc'].apply(lambda x: x[0]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LSM_convar                 0.000245117\n",
       "LSM_pure                    0.00021918\n",
       "MCS_euro                   0.000122928\n",
       "PY1                               0.01\n",
       "PY1_acc                           True\n",
       "PY2                               0.01\n",
       "PY2_acc                          False\n",
       "PY_acc                            True\n",
       "SE                         3.94284e-05\n",
       "V0_euro                    0.000148865\n",
       "anti_paths                        True\n",
       "benchmark                       0.0001\n",
       "control_variate                   True\n",
       "error                      0.000145117\n",
       "maturity                     0.0833333\n",
       "moment_matching                   True\n",
       "panel                                0\n",
       "paths                            35000\n",
       "rel_error                      1.45117\n",
       "runs                                 5\n",
       "steps                               20\n",
       "strike                              90\n",
       "timestamp          1418555706404688000\n",
       "var_disc                             F\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "var_disc_select = ['F', 'P', 'T', 'A']\n",
    "grouped = results[(results.var_disc.isin(var_disc_select))].groupby(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "tab = grouped.agg({'benchmark': len, 'PY_acc': err, 'error': (np.mean, mse)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "table = ''\n",
    "f = open('10_mcs/table_10_5.tex', 'w')\n",
    "for i in range(len(tab)):\n",
    "    dats = list(tab.iloc[i].name)\n",
    "    dats.extend(tab[['PY_acc', 'benchmark', 'error']].iloc[i].values)\n",
    "    dats.insert(0, 5)\n",
    "    row = tmpl % tuple(dats) + '\\n'\n",
    "    table += row\n",
    "    f.write(row)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5 &  20 &  35000 &  A  &  True &  True &  True &  10 & 180 & -0.00417 & 0.00038 \\tn\n",
      "5 &  20 &  35000 &  F  &  True &  True &  True &  11 & 180 & -0.00241 & 0.00043 \\tn\n",
      "5 &  20 &  35000 &  P  &  True &  True &  True &  10 & 180 & -0.00323 & 0.00051 \\tn\n",
      "5 &  20 &  35000 &  T  &  True &  True &  True &  15 & 180 & -0.00318 & 0.00051 \\tn\n",
      "5 &  20 & 100000 &  A  &  True &  True &  True &  14 & 180 & -0.00928 & 0.00048 \\tn\n",
      "5 &  20 & 100000 &  F  &  True &  True &  True &  15 & 180 & -0.00857 & 0.00033 \\tn\n",
      "5 &  20 & 100000 &  P  &  True &  True &  True &  20 & 180 & -0.00855 & 0.00047 \\tn\n",
      "5 &  20 & 100000 &  T  &  True &  True &  True &  15 & 180 & -0.00981 & 0.00047 \\tn\n",
      "5 &  20 & 200000 &  A  &  True &  True &  True &  17 & 180 & -0.00966 & 0.00040 \\tn\n",
      "5 &  20 & 200000 &  F  &  True &  True &  True &  19 & 180 & -0.01116 & 0.00044 \\tn\n",
      "5 &  20 & 200000 &  P  &  True &  True &  True &  15 & 180 & -0.01055 & 0.00043 \\tn\n",
      "5 &  20 & 200000 &  T  &  True &  True &  True &  16 & 180 & -0.01032 & 0.00041 \\tn\n",
      "5 &  50 &  35000 &  A  &  True &  True &  True &  12 & 180 & -0.00211 & 0.00040 \\tn\n",
      "5 &  50 &  35000 &  F  &  True &  True &  True &  16 & 180 & -0.00004 & 0.00048 \\tn\n",
      "5 &  50 &  35000 &  P  &  True &  True &  True &  14 & 180 & 0.00020 & 0.00043 \\tn\n",
      "5 &  50 &  35000 &  T  &  True &  True &  True &  15 & 180 & -0.00258 & 0.00047 \\tn\n",
      "5 &  50 & 100000 &  A  &  True &  True &  True &   7 & 180 & -0.00478 & 0.00031 \\tn\n",
      "5 &  50 & 100000 &  F  &  True &  True &  True &   6 & 180 & -0.00536 & 0.00028 \\tn\n",
      "5 &  50 & 100000 &  P  &  True &  True &  True &   7 & 180 & -0.00657 & 0.00032 \\tn\n",
      "5 &  50 & 100000 &  T  &  True &  True &  True &   9 & 180 & -0.00591 & 0.00034 \\tn\n",
      "5 &  50 & 200000 &  A  &  True &  True &  True &   7 & 180 & -0.00783 & 0.00034 \\tn\n",
      "5 &  50 & 200000 &  F  &  True &  True &  True &   7 & 180 & -0.00720 & 0.00038 \\tn\n",
      "5 &  50 & 200000 &  P  &  True &  True &  True &   3 & 180 & -0.00709 & 0.00029 \\tn\n",
      "5 &  50 & 200000 &  T  &  True &  True &  True &   9 & 180 & -0.00743 & 0.00032 \\tn\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(table) # table 10.5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>\n",
    "\n",
    "<a href=\"http://tpq.io\" target=\"_blank\">http://tpq.io</a> | <a href=\"http://twitter.com/dyjh\" target=\"_blank\">@dyjh</a> | <a href=\"mailto:training@tpq.io\">training@tpq.io</a>\n",
    "\n",
    "**Quant Platform** |\n",
    "<a href=\"http://quant-platform.com\">http://quant-platform.com</a>\n",
    "\n",
    "**Python for Finance** |\n",
    "<a href=\"http://python-for-finance.com\" target=\"_blank\">Python for Finance @ O'Reilly</a>\n",
    "\n",
    "**Derivatives Analytics with Python** |\n",
    "<a href=\"http://derivatives-analytics-with-python.com\" target=\"_blank\">Derivatives Analytics @ Wiley Finance</a>\n",
    "\n",
    "**Listed Volatility and Variance Derivatives** |\n",
    "<a href=\"http://lvvd.tpq.io\" target=\"_blank\">Listed VV Derivatives @ Wiley Finance</a>\n",
    "\n",
    "**Python Online Training** |\n",
    "<a href=\"http://certificate.tpq.io\" target=\"_blank\">Python for Algorithmic Trading University Certificate</a>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
